INF Version 部分

按照约定, “版本” 部分首先显示在 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 节中来提供特定于 OS 的安装信息,无论 签名名称$Windows NT$ 还是 $Chicago$。 (请参阅 为多个平台和操作系统 创建 INF 文件,以便讨论这些扩展。

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

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

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

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

注意

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

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

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

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

注意

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

ExtensionId={xxxxxxxx-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 硬件质量实验室(WHQL)测试时,WHQL 会将 .cat 目录文件返回到 IHV 或 OEM。 每个 .cat 文件都包含驱动程序包的数字签名。 IHV 或 OEM 必须在 INF 版本部分中列出这些 .cat 文件,并且必须在分发介质上提供与 INF 文件相同的位置的文件。 必须取消压缩 .cat 文件。

注意

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

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

示例

以下示例演示简单驱动程序包 INF 的典型版本部分,后跟此示例 Version 节中指定的条目所隐含的所需 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

字符串