INF 部分摘要

下面概述了 INF 文件中可使用的系统定义部分。 系统定义的部分名称不区分大小写。 例如,versionVERSIONVersion 在 INF 文件中同样有效。

本部分将按照 INF 文件各部分在大多数设备 INF 文件中出现的顺序进行介绍。 但是,这些部分实际上可以按照任意顺序指定。 无论是系统定义的还是 INF 编写器定义的 INF 文件,Windows 都是按部分名称而不是按顺序来查找每个 INF 文件中的所有部分。

Version 部分
这是每个 INF 文件都必须包含的部分。 要在 Windows 2000 及更高版本的 Windows 上安装,此部分必须有一个有效的 Signature 条目。

SignatureAttributes 部分
INF 的这一部分定义了作为硬件认证一部分的一组嵌入式签名文件。 有某些特殊需求的设备需要这些附加签名。 例如,受保护的环境媒体播放、早期启动反恶意软件和第三方 HAL 扩展。

SourceDisksNames 部分
如果 INF 文件有相应的 SourceDisksFiles 部分,则必须包含此部分。

SourceDisksFiles 部分
本部分确定了要从分发介质安装到目标计算机上的目标的文件位置。 包含此部分的 INF 文件还必须包含 SourceDisksNames 部分。

DestinationDirs 部分
INF 文件有一个 DestinationDirs 部分,用于为 INF 通过 CopyFiles 指令引用的任何文件指定目标目录。 如果 INF 使用 CopyFiles,则必须包含此部分。

ControlFlags 部分
一般来说,大多数设备驱动程序和系统类安装程序的 INF 文件都包含这一部分,因此它们可以通过 ExcludeFromSelect 指令,将至少 Models 条目的子集从显示给最终用户的可手动安装设备列表中排除。 只安装 PnP 设备的 INF 文件会禁止显示所有特定型号的信息。

Manufacturer 部分
设备及其驱动程序的 INF 文件中必须包含这一部分。

INF 文件的 Manufacturer 部分有时被称为“目录”,因为其中的每个条目都引用了 INF 编写器定义的 Models 部分,而该部分又引用了其他 INF 编写器定义的部分,例如每个模型条目的 DDInstall 部分、DDInstall.Services 部分等。

Models 部分(每个 Manufacturer 条目)
本部分用于确定 INF 文件要安装驱动程序的设备。 它指定了设备的通用名称(字符串)、设备 ID 和 INF 文件中包含设备安装说明的 DDInstall 部分名称之间的一组映射。

为单个提供程序安装一个或多个设备和驱动程序的 INF 文件只有一个 Models 部分,但设备类的系统 INF 文件可以有许多由 INF 编写器定义的 Models 部分。

DDInstall 部分(每个 Models 条目)
要实际安装 INF 文件中 Models 部分列出的任何设备,以及每个此类设备的驱动程序,都必须包含此部分。 一个 DDInstall 部分可由多个 Models 部分共享。

DDInstall.Services 部分
如果作为安装设备的一部分,INF 文件需要在系统上创建任何服务,则必须包含此部分。 本部分控制创建服务的启动方式和时间、对其他服务的依赖性(如有)等。 如果设备驱动程序支持事件日志记录,则本部分还将设置该设备驱动程序的事件日志记录服务。

DDInstall.HW 部分
此可选部分会将特定于设备(通常与驱动程序无关)的信息添加到注册表中。

DDInstall.Events 部分

此可选部分允许 INF 注册 ETW 提供程序并创建 AutoLogger 注册。

DDInstall.Components 部分

此可选部分允许指定一个或多个 AddComponent 指令,以创建子组件设备。

DDInstall.Software 部分

此可选部分允许指定一个或多个 AddSoftware 指令,以便安装独立软件。

DDInstall.Interfaces 部分
如果驱动程序导出了设备接口类的功能,从而创建了接口类的新实例,如内核流静态图像捕获或数据解压缩,则其 INF 文件可以包含这一部分。 此部分可用于将设备接口预先创建为禁用接口,并由 INF 文件提供一些初始状态。

InterfaceInstall32 部分
如果要安装的组件(如新的类驱动程序)为上一级组件提供了一个或多个新的设备接口类,则其 INF 文件可以包含这一部分。 这可用于在设备接口类中注册任何接口之前预先创建该接口类。 在类中注册接口并不需要预先创建类,但 INF 中的这一部分允许 INF 将某些状态与设备接口类关联起来。

DDInstall.FactDef 部分
注意 如果正在生成通用或“Windows 驱动程序”驱动程序包,则此部分无效。 请参阅使用通用 INF 文件

此部分应包含在任何手动安装的非 PnP 设备的 INF 文件中。 它指定卡的出厂默认硬件配置设置,如总线相关 I/O 端口、IRQ(如有)等。

DDInstall.LogConfigOverride 部分
注意 如果正在生成通用或“Windows 驱动程序”驱动程序包,则此部分无效。 请参阅使用通用 INF 文件

本部分用于创建替代配置,该配置可替代即插即用设备总线驱动程序报告的硬件资源要求。

DefaultInstall 部分
如果用户在选中并按住(或右键单击)INF 文件名后选择“安装”菜单项,则会访问 INF 文件的 DefaultInstall 部分。

DefaultInstall.Services 部分
此部分与 INF DDInstall.Services 部分相同,并与 INF DefaultInstall 部分关联使用。

Strings 部分
每个 INF 文件都需要这一部分来定义 INF 中指定的每个 %strkey% 令牌。 按照惯例,在所有系统提供的 INF 文件中,Strings 部分(如果 INF 提供了一组特定于本地的 Strings 部分,则该部分也会出现)会出现在最后,以方便维护和本地化。

此处列出的某些部分,尤其是名称中包含 Install 的部分,可能包含引用其他 INF 编写器定义的部分的指令。 在安装过程中,每个指令都会导致对 INF-writer-defined 部分的相应类型下所列项目执行特定操作。

前面列表中任何特定部分的有效条目和指令集都特定于部分,并会显示在每一部分的引用的正式语法中。 此外,请参阅 INF 指令摘要,了解最常用指令的摘要。