Таблица подписей
Таблица Подпись содержит сведения, которые однозначно идентифицируют сигнатуру файла. Дополнительные сведения о подписях см. в разделе Цифровые подписи и установщик Windows.
Таблица Signature содержит следующие столбцы.
Столбец | Type | Ключ | Допускает значения NULL |
---|---|---|---|
Сигнатура | Идентификатор | Да | N |
FileName | Text | N | N |
MinVersion | Text | N | Да |
MaxVersion | Text | N | Да |
MinSize | DoubleInteger | Нет | Да |
MaxSize | DoubleInteger | Нет | Да |
MinDate | DoubleInteger | Нет | Да |
MaxDate | DoubleInteger | Нет | Да |
Языки | Text | N | Да |
-
Подпись
-
Столбец Подпись — это уникальная сигнатура файла.
-
Имени файла
-
Имя файла.
-
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. Столбцы этой таблицы, как правило, не локализованы. Если автор решает искать продукты на нескольких языках, в таблицу для каждого языка может быть включена отдельная запись.
Таблица Signature обычно соответствует правилам управления версиями файлов установщика Windows. Языки, указанные в столбце Языки таблицы Подпись, не вычисляются, если версии файлов не эквивалентны. Столбец Языки гарантирует, что файл имеет определенный язык, если он имеет запрошенную версию. Нет метода пропуска столбца Languages. Значение NULL, введенное в столбце Языки, рассматривается как файл без языка и не соответствует сигнатуре файла с языком, отображаемым в таблице Signature. В следующем примере выполняется поиск определенной версии MSI.DLL.
Подпись_ | Parent | Путь | Глубина |
---|---|---|---|
MsiDll | {null} | c:\windows\system32 | 0 |
Свойство | Подпись_ |
---|---|
MSIDLL | MsiDll |
Таблица подписей
Сигнатура | FileName | MinVersion | MaxVersion | MinSize | MaxSize | MinDate | MaxDate | Языки |
---|---|---|---|---|---|---|---|---|
MsiDll | msi.dll | 2.0.2600.1106 | {null} | {null} | {null} | {null} | {null} | 0 |
В этом случае и в Windows XP с пакетом обновления 1 (SP1 ) действие AppSearch устанавливает для MSIDLL значение c:\windows\system32\msi.dll, так как MSI.DLL является файлом, не зависящим от языка. Если значение столбца Languages изменено с 0 на 1033, действие AppSearch не сможет найти соответствующий msi.dll а свойство MSIDLL не определено.
Таблицу Signature нельзя использовать для выполнения запросов только по языкам. Для поиска разных языковых версий файла необходимо иметь отдельную запись в таблице Signature для каждой языковой версии. Если в столбце Языки указано несколько языков, поиск выполняется для файла, который поддерживает все эти языки.
Формат столбцов MinDate и MaxDate — это два упакованных 16-разрядных значения типа WORD.
Дата WORD
Bits | Содержимое |
---|---|
0–4 | День месяца (1–31) |
5-8 | Месяц (1 = январь, 2 = февраль и т. д.) |
9-15 | Смещение года по сравнению с 1980 (добавьте 1980, чтобы получить фактический год) |
Время WORD
Bits | Содержимое |
---|---|
0–4 | Секунды, разделенные на 2 |
5-10 | Минуты (0–59) |
11-15 | Hour(0-23 на 24-часовой часы) |
Формула для вычисления значений полей MinDate и MaxDate:
( (Год - 1980) * 512 + Месяц * 32 + День ) * 65536 + Часы * 2048 + Минуты * 32 + Секунды/2