Поделиться через


Раздел "ВЕРСИЯ INF"

По соглашению раздел версии сначала отображается в INF-файлах. Каждый INF-файл должен иметь этот раздел.

[Version]
 
Signature="signature-name"
[Class=class-name]
[ClassGuid={nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}]
[Provider=%INF-creator%]
[ExtensionId={xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}]
[LayoutFile=filename.inf [,filename.inf]... ]  (Windows 2000 and Windows XP)
[CatalogFile=filename.cat]
[CatalogFile.nt=unique-filename.cat]
[CatalogFile.ntx86=unique-filename.cat]
[CatalogFile.ntia64=unique-filename.cat]  (Windows XP and later versions of Windows)
[CatalogFile.ntamd64=unique-filename.cat]  (Windows XP and later versions of Windows)
[CatalogFile.ntarm=unique-filename.cat]  (Windows 8 and later versions of Windows)
[CatalogFile.ntarm64=unique-filename.cat]  (Windows 10 version 1709 and later versions of Windows)

DriverVer=mm/dd/yyyy,w.x.y.z
[PnpLockDown=0|1] (Windows Vista and later versions of Windows)
[DriverPackageDisplayName=%driver-package-description%]
[DriverPackageType=PackageType]

Операции

Signature="signature-name"
Должно быть $Windows NT$ или $Chicago$. Это указывает операционные системы, для которых действителен этот INF-файл. Эти значения подписи имеют следующие значения.

Значение подписи Значение
$Windows NT$ Все операционные системы Windows
$Chicago$ Все операционные системы Windows

Заключающие символы знака доллара ($) являются обязательными, но эти строки не учитывает регистр. Если имя подписи не является ни одной из этих строковых значений, файл не принимается в качестве допустимого INF.

Как правило, Windows не отличается от этих значений подписи. Один из них должен быть указан, но не имеет значения, какой из них. Необходимо указать соответствующее значение, чтобы кто-то считывал INF-файл, может определить операционные системы, для которых он предназначен.

Некоторые установщики классов указывают дополнительные требования к указанию значения подписи. Такие требования, если они существуют, рассматриваются в разделах, относящихся к типу устройства, в этом комплекте драйверов Windows (WDK).

INF-файл должен предоставить сведения о установке для конкретной ОС путем добавления системных расширений в разделы DDInstall, независимо от того, является ли имя подписи $Windows NT$ или $Chicago$. (См. раздел Создание INF-файлов для нескольких платформ и операционных систем для обсуждения этих расширений.)

Class=class-name
Для любого стандартного типа устройства это указывает имя класса установки устройства для типа устройства, установленного с помощью этого INF-файла. Обычно это имя является одним из системных имен классов, таких как Net или Display, которые перечислены в Devguid.h. Дополнительные сведения см. в разделе "Классы установки устройств, предоставленных системой".

Если INF задает класс, он также должен указать соответствующее системное значение GUID для записи ClassGUID . Указание соответствующего значения GUID для устройства любого предопределенного класса установки устройства может быстрее установить устройство и его драйверы, так как это помогает коду установки системы оптимизировать поиск INF.

Если INF добавляет новый класс установки устройств в систему, он должен предоставить уникальное нечувствительное значение имени класса регистра, которое отличается от любого из системных классов в Devguid.h. Длина строки имени класса должна составлять 32 символа или меньше. Inf должен указать только что созданное значение GUID для записи ClassGUID . См. также раздел INF ClassInstall32.

Эта запись не относится к INF-файлу, который устанавливает ни новый драйвер устройства в предопределенном классе установки устройства, ни в новом классе установки устройства.

Примечание.

Эта запись необходима для драйверов устройств, установленных с помощью диспетчера самонастраивающийся (PnP).

ClassGuid={----nn nn}
Указывает GUID класса установки устройства. Значение GUID отформатировано, как показано здесь, где каждая n является шестнадцатеричной цифрой.

Это значение GUID указывает класс установки устройства для назначения устройствам, установленным из этого INF-файла. Это значение GUID для конкретного класса также определяет установщик класса устройства для типа устройства и поставщика страницы свойств для конкретного класса, если таковые имеются.

Для нового класса установки устройства INF-файл должен указать только что созданное значение ClassGUID . Дополнительные сведения о создании идентификаторов GUID см. в разделе "Использование идентификаторов GUID в драйверах". См. также классы установки устройств.

Примечание.

Эта запись необходима для драйверов устройств, установленных через диспетчер PnP.

ExtensionId={xxxx-xxxx-xxxx-xxxx-xxxx-xxxx}
Указывает GUID идентификатора расширения при создании расширения INF. Значение GUID отформатировано, как показано здесь, где каждая x является шестнадцатеричной цифрой.

При создании начальной версии расширения INF необходимо указать только что созданное значение ExtensionId . Однако при обновлении существующего расширения INF идентификатор ExtensionId должен оставаться неизменным, чтобы несколько связанных версий inf расширения были версии друг с другом, а не рассматриваться как независимые infs расширения, которые могут быть одновременно установлены на одном экземпляре устройства. Дополнительные сведения о том, как создавать infs расширения, см. в разделе "Использование INF-файла расширения".

Примечание.

Эта запись требуется только при создании расширения INF, как указано путем указания Class = Extension и ClassGuid = {e2f84ce7-8efa-411c-aa69-97454ca4cb57}.

ClassVer=major.несовершеннолетний
Зарезервировано для использования системы, если не требуется явным образом класс устройства, например Принтер. Например, см . INF-файл драйвера версии 4.

Provider=%INF-creator%
Определяет поставщика INF-файла. Как правило, это указано в качестве маркера OrganizationName%, развернутого далее в разделе строк INF-файла.% Максимальная длина в символах имени поставщика LINE_LEN.

Например, INF-файлы, предоставляемые системой, обычно указывают INF-creator как% Msft и определяют% Msft%% = "Майкрософт" в своих разделах Strings.

Примечание.

Эта запись необходима для драйверов устройств, установленных через диспетчер PnP.

CatalogFile=filename.cat
Указывает каталог (.cat) файл, который должен быть включен в носитель распространения пакета драйвера.

Когда пакет драйвера отправляется в Корпорацию Майкрософт для цифровой подписи, WHQL предоставляет файл каталога для пакета драйверов после того, как WHQL протестировал и назначил цифровые подписи пакету. Дополнительные сведения о тестировании и подписании пакетов драйверов IHV или OEM см. в сигнатуре выпуска WHQL. Файлы каталога не перечислены в разделе SourceDisksFiles или директиве CopyFiles INF. В Windows предполагается, что файл каталога находится в том же расположении, что и INF-файл.

Системные INF-файлы никогда не имеют записей CatalogFile= , так как операционная система проверяет подпись для такого INF-файла для всех системных xxx.cat файлов.

CatalogFile.nt=unique-filename.cat |
CatalogFile.ntx86=unique-filename.cat |
CatalogFile.ntia64=unique-filename.cat |
CatalogFile.ntamd64=unique-filename.cat
CatalogFile.ntarm=unique-filename.cat
CatalogFile.ntarm64=unique-filename.cat

Указывает другое имя файла, определяемого inf-writer, с уникальным именем файла.расширение cat , файла каталога. Если эти необязательные записи опущены, данный CatalogFile=filename.cat используется для проверки установок устройств или драйверов WDM.

Если какой-либо украшенный CatalogFile.Запись xxx= существует в разделе версии INF вместе с неоцененной записью CatalogFile= , неоцененной записью предполагается определить filename.cat для проверки установки устройств, установки драйверов или обоих на этих платформах, для которых декорированная запись не указана.

Любой кроссплатформенный INF-файл драйвера устройства, имеющий CatalogFile= и CatalogFile.Записи xxx= должны указывать уникальное имя IHV/OEM для каждого такого CAT-файла.

Дополнительные сведения об использовании системных расширений .nt, NTX86, .ntia64, .ntamd64, NTARM и NTARM64 см. в разделе "Создание INF-файлов для нескольких платформ и операционных систем".

Примечание.

Так как один и тот же CAT-файл можно использовать на всех поддерживаемых платформах, использование этой записи не требуется или рекомендуется. Однако эту запись необходимо использовать, если вы хотите создать файлы cat для конкретной платформы для пакета драйверов.

DriverVer= mm/dd/гггг,w.x.y.z
Эта запись указывает сведения о версии драйверов, установленных этим INF-файлом. Начиная с Windows 2000, эта запись требуется.

Сведения об указании этой записи см . в директиве INF DriverVer.

PnpLockDown=0|1
Указывает, запрещает ли самонастраивающийся (PnP) приложениям напрямую изменять файлы, которые указывает INF-файл пакета драйвера. Если для директивы PnpLockDown задано значение 1, PnP запрещает приложениям напрямую изменять файлы, скопированные директивами INF CopyFiles. В противном случае, если директива не включена в INF-файл или значение директивы равно нулю, приложение с правами администратора может напрямую изменить эти файлы. Файлы драйверов, защищенные таким образом, называются сторонними файлами драйверов.

Чтобы обеспечить целостность установки драйвера PnP, приложения не должны напрямую изменять файлы драйверов, скопированные INF-файлом пакета драйвера. Приложения должны использовать только механизмы установки устройств, предоставляемые Windows, для обновления драйверов PnP.

Начиная с Windows Vista пакет драйвера должен задать значение PnpLockDown равным 1, чтобы предотвратить непосредственное изменение файлов драйверов приложения. Однако некоторые существующие приложения, которые удаляют пакеты драйверов, выполняют непосредственное удаление файлов драйверов. Чтобы обеспечить совместимость с этими приложениями, директива PnpLockDown для такого пакета драйверов должна иметь значение нулю.

Примечание.

Хотя PnP в Windows Vista и более поздних версиях Windows не требует, чтобы INF-файл включал директиву PnpLockDown для установки драйвера, PnP в будущей версии Windows может потребовать, чтобы INF-файлы для пакетов драйверов PnP включали директиву PnpLockDown.

DriverPackageDisplayName=%driver-package-description%
Устарело. Ранее использовался драйвером Install Framework (DIFx). Дополнительные сведения об отмене diFx см. в рекомендациях DIFx.

DriverPackageType= PackageType
Устарело. Ранее использовался драйвером Install Framework (DIFx). Дополнительные сведения об отмене diFx см. в рекомендациях DIFx.

Замечания

Когда пакет драйвера проходит тестирование Лаборатории качества оборудования Microsoft Windows (WHQL), WHQL возвращает файлы каталога CAT в IHV или OEM. Каждый CAT-файл содержит цифровую зашифрованную подпись для пакета драйвера. IHV или OEM должен перечислить эти CAT-файлы в разделе INF Version и предоставить файлы на носителе дистрибутива в том же расположении, что и INF-файл. Файлы CAT должны быть несжаты.

Примечание.

Если раздел INF-версии не содержит по крайней мере одну запись CatalogFile или CatalogFile.nt xxx, драйвер обрабатывается как неподписанный, а даты, перечисленные в директиве DriverVer, не отображаются в Windows.

Дополнительные сведения см. в разделе "Подписывание драйверов".

Примеры

В следующем примере показан раздел версии, типичный для простого пакета драйвера INF, а затем необходимые разделы SourceDisksNames и SourceDisksFiles, подразумеваемые записями, указанными в этом примере раздела версии:

[Version]
Signature="$Windows NT$"
Class=SCSIAdapter
ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
Provider=%INF_Provider%
CatalogFile=example.cat
DriverVer=01/29/2010,1.2.3.4
PnpLockdown=1

[SourceDisksNames]
;
; diskid = description[, [tagfile] [, <unused>, subdir]]
;
1 = %Disk_Description%,,,\WinNT

[SourceDisksFiles.x86]
;
; filename_on_source = diskID[, [subdir][, size]]
;
exampleDriver.sys = 1,\x86

; ...

[Strings]
INF_Provider="Contoso"
Disk_Description = "Contoso Drivers Disk"
; ...

См. также

DDInstall

SourceDisksNames

SourceDisksFiles

Строки