签名表
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。
签名_ | 父母 | 路径 | 深度 |
---|---|---|---|
MsiDll | {null} | c:\windows\system32 | 0 |
财产 | 签名_ |
---|---|
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
验证