Signature Table

The Signature table holds the information that uniquely identifies a file signature. For more information regarding signatures see Digital Signatures and Windows Installer.

The Signature table has the following columns.

ColumnTypeKeyNullable
Signature Identifier YN
FileName Text NN
MinVersion Text NY
MaxVersion Text NY
MinSize DoubleInteger NY
MaxSize DoubleInteger NY
MinDate DoubleInteger NY
MaxDate DoubleInteger NY
Languages Text NY

 

Columns

Signature

The Signature column is a unique file signature.

FileName

The name of the file.

MinVersion

The minimum version of the file, with a language comparison. If this field is specified, then the file must have a version that is at least equal to MinVersion. If the file has an equal version to the MinVersion field value but the language specified in the Languages column differs, the file does not satisfy the signature filter criteria.

Note  The language specified in the Languages column is used in the comparison and there is no way to ignore language. If you want a file to meet the MinVersion field requirement regardless of language, you must enter a value in the MinVersion field that is one less than the actual value. For example, if the minimum version for the filter is 2.0.2600.1183, use 2.0.2600.1182 to find the file without matching the language information.

MaxVersion

The maximum version of the file. If this field is specified, then the file must have a version that is at most equal to MaxVersion.

MinSize

The minimum size of the file. If this field is specified, then the file under inspection must have a size that is at least equal to MinSize. This must be a non-negative number.

MaxSize

The maximum size of the file. If this field is specified, then the file under inspection must have a size that is at most equal to MaxSize. This must be a non-negative number.

MinDate

The minimum modification date and time of the file. If this field is specified, then the file under inspection must have a modification date and time that is at least equal to MinDate. This must be a non-negative number. The format of this field is two packed 16-bit values of type WORD. The high order WORD value specifies the date in MS-DOS date format. The low order WORD value specifies the time in MS-DOS time format. A value of 0 for the time value represents midnight. See the Remarks section.

MaxDate

The maximum creation date of the file. If this field is specified, then the file under inspection must have a creation date that is at most equal to MaxDate. This must be a non-negative number. The format of this field is two packed 16-bit values of type WORD. The high order WORD value specifies the date in MS-DOS date format. The low order WORD value specifies the time in MS-DOS time format. A value of 0 for the time value represent midnight. See the Remarks section.

Languages

The languages supported by the file.

Remarks

This table is used with the AppSearch Table.

The signature is searched for using the RegLocator table, the IniLocator table, the CompLocator table, and the DrLocator table. This table's columns are generally not localized. If an author decides to search for products in multiple languages, then there can be a separate entry included in the table for each language.

The Signature table generally follows the Windows Installer File Versioning Rules. Languages specified in the Languages column of the Signature table are not evaluated unless the file versions are equivalent. The Languages column will ensure that a file is of a particular language if it is of the requested version. There is no method available to ignore the Languages column. A NULL value entered in the Languages column is treated as a file without a language and does not match the file signature of a file with a language appearing in the Signature table. The following example searches for a particular version of MSI.DLL.

DrLocator table

Signature_ParentPathDepth
MsiDll{null}c:\windows\system320

 

AppSearch Table

PropertySignature_
MSIDLLMsiDll

 

Signature table

SignatureFileNameMinVersionMaxVersionMinSizeMaxSizeMinDateMaxDateLanguages
MsiDllmsi.dll2.0.2600.1106{null}{null}{null}{null}{null}0

 

In this case, and on Windows XP SP1, the AppSearch action sets MSIDLL to c:\windows\system32\msi.dll because MSI.DLL is a language neutral file. If the value of the Languages column is changed from 0 to 1033, then the AppSearch action fails to find the matching msi.dll and the MSIDLL property is undefined.

You cannot use the Signature table to query on languages alone. To search for different language versions of a file, you must have a separate entry in the Signature table for each language version. If multiple languages are provided in the Languages column, then the search is for a file that supports all of those languages.

The format of MinDate and MaxDate columns are two packed 16-bit values of type WORD.

Date WORD

BitsContent
0–4Day of the month (1-31)
5-8Month (1 = January, 2 = February, and so on)
9-15Year offset from 1980 (add 1980 to get actual year)

 

Time WORD

BitsContent
0–4Seconds divided by 2
5-10Minutes (0-59)
11-15Hour(0-23 on 24 hour clock)

 

The formula for calculating the MinDate and MaxDate field values is:

( (Year - 1980) * 512 + Month * 32 + Day ) * 65536 + Hours * 2048 + Minutes * 32 + Seconds/2

Validation

ICE03
ICE06

 

 

Community Additions

ADD
Show:
© 2014 Microsoft