簽章數據表
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 域值相等,但 Language 數據行中指定的語言不同,則檔案不符合簽章篩選準則。
注意
[語言] 資料行中指定的語言會用於比較中,而且無法忽略語言。 如果您希望檔案符合 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 值會視為沒有語言的檔案,而且與出現在 Signature 數據表中的語言不符檔案簽章。 下列範例會搜尋特定版本的 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是語言中性檔案。 如果 Languages 資料行的值從 0 變更為 1033,則 AppSearch 巨集指令找不到相符 msi.dll 且 MSIDLL 屬性未定義。
您無法單獨使用 Signature 資料表來查詢語言。 若要搜尋不同語言版本的檔案,您必須在 [簽章] 數據表中針對每個語言版本使用不同的專案。 如果在 [語言] 資料行中提供多種語言,則搜尋會尋找支援所有這些語言的檔案。
MinDate 和 MaxDate 資料行的格式是兩個封裝的 16 位值,類型 WORD。
日期 WORD
位 | 內容 |
---|---|
0–4 | 當月日 (1-31) |
5-8 | 月 (1 = 1 月, 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
驗證