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 操作系统

需要包含 $) (美元符号字符,但这些字符串不区分大小写。 如果 signature-name 不是这些字符串值,则不接受该文件作为有效的 INF。

通常,Windows 不会区分这些签名值。 其中一个必须指定,但无关紧要。 应指定适当的值,以便读取 INF 文件的人员可以确定其适用的操作系统。

某些类安装程序对如何指定签名值提出了其他要求。 此 Windows 驱动程序工具包 (WDK) 的设备类型特定部分中讨论了此类要求(如果存在)。

无论签名名称$Windows NT$ 还是 $Chicago$,INF 都必须通过将系统定义的扩展追加到其 DDInstall 节来提供特定于 OS 安装信息。 (有关这些扩展的讨论,请参阅 为多个平台和操作系统创建 INF 文件 。)

Class=class-name
对于任何标准类型的设备,这将指定使用此 INF 文件安装的设备类型的设备 安装类 的名称。 此名称通常是 Devguid.h 中列出的系统定义的类名称之一,例如 NetDisplay。 有关详细信息,请参阅 系统提供的设备安装程序类

如果 INF 指定 了类,则它还应为其 ClassGUID 条目指定相应的系统定义的 GUID 值。 为任何预定义设备安装程序类的设备指定匹配的 GUID 值可以更快地安装设备及其驱动程序,因为这有助于系统设置代码优化其 INF 搜索。

如果 INF 将设备的新安装类添加到系统,它应提供唯一的不区分大小写的 类名称 值,该值不同于 Devguid.h 中系统提供的任何类。 类名字符串的长度必须为 32 个字符或更少。 INF 必须为 ClassGUID 条目指定新生成的 GUID 值。 另请参阅 INF ClassInstall32 部分

此项与既不安装预定义设备安装程序类下的新设备驱动程序,也不安装新设备安装程序类的 INF 无关。

注意

对于通过 即插即用 (PnP) 管理器安装的设备驱动程序,需要此项。

ClassGuid={nnnnnn-nnnn-nn nnnn-nnnn-nnnnnn}
指定 设备安装类 GUID。 GUID 值的格式如下所示,其中每个 n 是一个十六进制数字。

此 GUID 值指定要分配给从此 INF 文件安装的设备的设备安装程序类。 此类特定的 GUID 值还标识设备类型和类特定属性页提供程序(如果有)的设备类安装程序。

对于新的 设备安装类,INF 必须指定新生成的 ClassGUID 值。 有关如何创建 GUID 的详细信息,请参阅 在驱动程序中使用 GUID。 另请参阅设备安装类。

注意

通过 PnP 管理器安装的设备驱动程序需要此条目。

ExtensionId={xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
指定创作扩展 INF 时扩展 ID GUID。 GUID 值的格式如下所示,其中每个 x 都是十六进制数字。

创建扩展 INF 的初始版本时,INF 必须指定新生成的 ExtensionId 值。 但是,在更新现有扩展 INF 时, ExtensionId 必须保持不变,以便扩展 INF 的多个相关版本相互进行版本控制,而不是被视为可以同时安装在同一设备实例上的独立扩展 INF。 有关如何创作扩展 INF 的详细信息,请参阅 使用扩展 INF 文件

注意

仅当创建扩展 INF 时,才需要此项,通过指定 Class = ExtensionClassGuid = {e2f84ce7-8efa-411c-aa69-97454ca4cb57}进行标识。

ClassVer=major
保留供系统使用,除非设备类(如 Printer)明确要求。 有关示例,请参阅 V4 驱动程序 INF

Provider=%INF-creator%
标识 INF 文件的提供程序。 通常,这是指定为 %组织名称% 令牌,稍后将在 INF 文件的 Strings 节中展开。 提供程序名称的最大长度(以字符为单位)LINE_LEN。

例如,系统随附的 INF 文件通常将 INF 创建者指定为 %Msft%,并在其 Strings 节中定义 %Msft% = “Microsoft”。

注意

通过 PnP 管理器安装的设备驱动程序需要此条目。

CatalogFile=filename.cat
指定目录 (。cat) 要包含在驱动程序包的分发介质上的文件。

驱动程序包 提交到 Microsoft 进行数字签名时,在 WHQL 测试并向其分配数字签名后,WHQL 会提供驱动程序包的 目录文件 。 有关 IHV 或 OEM 驱动程序包的测试和签名的详细信息,请参阅 WHQL 发布签名。 目录文件未在 INF 的 SourceDisksFiles 部分或 CopyFiles 指令中列出。 Windows 假定目录文件与 INF 文件位于同一位置。

系统提供的 INF 文件永远不会有 CatalogFile= 条目,因为操作系统会针对系统提供的所有 xxx.cat 文件验证此类 INF 签名。

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 编写器确定的另一个唯一文件名。目录文件的 cat 扩展名。 如果省略这些可选条目,则会使用给定的 CatalogFile=filename.cat 来验证 WDM 设备/驱动程序安装。

如果有任何修饰的 CatalogFile。xxx= 条目与未修饰的 CatalogFile= 条目一起存在于 INF 的“版本”部分中,假定未修饰的条目标识用于在未指定修饰项的平台上验证设备安装、驱动程序安装的 filename.cat 或两者。

具有 CatalogFile= 和 CatalogFile 的任何跨平台设备驱动程序 INF 文件。xxx= 条目必须为每个此类 .cat 文件提供唯一的 IHV/OEM 确定的名称。

有关如何使用系统定义的 .nt.ntx86.ntia64.ntamd64.ntarm.ntarm64 扩展的详细信息,请参阅 为多个平台和操作系统创建 INF 文件

注意

由于可以在所有受支持的平台上使用相同的 .cat 文件,因此不需要或建议使用此条目。 但是,如果要为驱动程序包创建特定于平台的 .cat 文件,则必须使用此项。

DriverVer=mm/dd/yyyy,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 指令设置为零。

注意

尽管 Windows Vista 和更高版本的 Windows 上的 PnP 不要求 INF 文件包含 PnpLockDown 指令即可安装驱动程序,但未来版本的 Windows 中的 PnP 可能要求 PnP 驱动程序包 的 INF 文件包含 PnpLockDown 指令。

DriverPackageDisplayName=%driver-package-description%
已弃用。 以前由驱动程序安装框架 (DIFx) 使用。 有关 DIFx 弃用的信息,请参阅 DIFx 指南

DriverPackageType=PackageType
已弃用。 以前由驱动程序安装框架 (DIFx) 使用。 有关 DIFx 弃用的信息,请参阅 DIFx 指南

注解

驱动程序包 通过 Microsoft Windows Hardware Quality Lab (WHQL) 测试时,WHQL 会将 .cat 目录文件返回到 IHV 或 OEM。 每个 .cat 文件都包含驱动程序包的数字加密签名。 IHV 或 OEM 必须在 INF 版本部分中列出这些 .cat 文件,并且必须在与 INF 文件位于同一位置的分发媒体上提供这些文件。 必须解压缩 .cat 文件。

注意

如果 INF 版本 部分不包含至少一个 CatalogFileCatalogFile.ntxxx 条目,则驱动程序将被视为无符号, 并且 DriverVer 指令中列出的日期不会由 Windows 显示。

有关详细信息,请参阅 驱动程序签名

示例

以下示例显示了简单驱动程序包 INF 的典型 Version 节,后跟此示例 Version 节中指定的条目所隐含的必需 SourceDisksNamesSourceDisksFiles 部分:

[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

字符串