签名表

Signature 表保存唯一标识文件签名的信息。 有关签名的详细信息,请参阅 数字签名和 Windows Installer

Signature 表包含以下列。

类型 钥匙
签名 标识符 Y N
文件名 文本 N N
MinVersion 文本 N Y
MaxVersion 文本 N Y
MinSize DoubleInteger N Y
MaxSize DoubleInteger N Y
MinDate DoubleInteger N Y
MaxDate DoubleInteger N Y
语言 文本 N Y

 

签名

“签名”列是唯一的文件签名。

FileName

文件的名称。

MinVersion

文件的最低版本,带有语言比较。 如果指定了此字段,则文件必须具有至少等于 MinVersion 的版本。 如果文件的版本与 MinVersion 字段值相等,但语言列中指定的语言不同,则该文件不满足签名筛选器条件。

注意

在比较中使用语言列中指定的语言,并且无法忽略语言。 如果希望文件满足 MinVersion 字段要求而不考虑语言,则必须在 MinVersion 字段中输入一个小于实际值的值。 例如,如果筛选器的最低版本为 2.0.2600.1183,请使用 2.0.2600.1182 查找文件而不匹配语言信息。

 

MaxVersion

文件的最大版本。 如果指定了此字段,则文件必须具有与 MaxVersion 最相等的版本。

MinSize

文件的最小大小。 如果指定了此字段,则正在检查的文件的大小必须至少等于 MinSize。 这必须是非负数。

MaxSize

文件的最大大小。 如果指定了此字段,则正在检查的文件必须具有最大等于 MaxSize 的大小。 这必须是非负数。

MinDate

文件的最小修改日期和时间。 如果指定了此字段,则正在检查的文件必须具有至少等于 MinDate 的修改日期和时间。 这必须是非负数。 此字段的格式是两个打包的 16 位值,类型 WORD。 WORD 高序指定日期格式 MS-DOS。 WORD 值的低顺序 指定时间 MS-DOS 格式。 时间值的值为 0 表示午夜。 请参阅“备注”部分。

MaxDate

文件的最大创建日期。 如果指定了此字段,则正在检查的文件必须具有最等于 MaxDate 的创建日期。 这必须是非负数。 此字段的格式是两个打包的 16 位值,类型 WORD。 WORD 高序指定日期格式 MS-DOS。 WORD 值的低顺序 指定时间 MS-DOS 格式。 时间值的值为 0 表示午夜。 请参阅“备注”部分。

语言

文件支持的语言。

言论

此表与 AppSearch 表一起使用。

签名使用 RegLocator 表IniLocator 表CompLocator 表以及 DrLocator 表进行搜索。 此表的列通常未本地化。 如果作者决定搜索多种语言的产品,则每个语言的表中可以包含一个单独的条目。

签名表通常遵循 Windows Installer 文件版本控制规则。 除非文件版本等效,否则不会计算 Signature 表的 Languages 列中指定的语言。 “语言”列将确保文件是特定语言(如果该文件是所请求的版本)。 没有可用于忽略“语言”列的方法。 在“语言”列中输入的 NULL 值被视为没有语言的文件,并且与出现在“签名”表中的语言的文件签名不匹配。 以下示例搜索特定版本的MSI.DLL。

DrLocator 表

签名_ 父母 路径 深度
MsiDll {null} c:\windows\system32 0

 

AppSearch 表

财产 签名_
MSIDLL MsiDll

 

签名表

签名 文件名 MinVersion MaxVersion MinSize MaxSize MinDate MaxDate 语言
MsiDll msi.dll 2.0.2600.1106 {null} {null} {null} {null} {null} 0

 

在这种情况下,在 Windows XP SP1 上,AppSearch作 将 MSIDLL 设置为 c:\windows\system32\msi.dll,因为MSI.DLL是非特定语言文件。 如果语言列的值从 0 更改为 1033,则 AppSearch作无法找到匹配 msi.dll 并且 MSIDLL 属性未定义。

不能单独使用签名表来查询语言。 若要搜索文件的不同语言版本,必须在“签名”表中为每个语言版本提供单独的条目。 如果在“语言”列中提供了多种语言,则搜索是支持所有这些语言的文件。

MinDate 和 MaxDate 列的格式是两个打包的 16 位值,WORD

日期 WORD

内容
0–4 月份日期 (1-31)
5-8 月 (1 = 1 月, 2 = 2 月, 等等)
9-15 与 1980 年之间的年份偏移量(增加 1980 年以获取实际年份)

 

时间 WORD

内容
0–4 秒除以 2
5-10 分钟 (0-59)
11-15 小时(0-23 在 24 小时制)

 

用于计算 MinDate 和 MaxDate 字段值的公式为:

(年份 - 1980) * 512 + 月 * 32 + 天 ) * 65536 + 小时 * 2048 + 分钟 * 32 + 秒/2

验证

ICE03
ICE06