INF DDInstall 节

每个模型 DDInstall 节都包含可选的 DriverVer 指令和一个或多个引用 INF 文件中其他命名节的指令,此处显示了最常用的 INF 指令、CopyFilesAddReg(首先列出)。

这些指令引用的部分包含有关安装驱动程序文件和将任何特定于设备的信息和/或特定于驱动程序的信息写入注册表的说明。

[install-section-name] | 
[install-section-name.nt] | 
[install-section-name.ntx86] | 
[install-section-name.ntia64] | (Windows XP and later versions of Windows)
[install-section-name.ntamd64] | (Windows XP and later versions of Windows)
[install-section-name.ntarm] | (Windows 8 and later versions of Windows)
[install-section-name.ntarm64] (Windows 10 version 1709 and later versions of Windows)

[DriverVer=mm/dd/yyyy[,x.y.v.z]]
[CopyFiles=@filename | file-list-section[,file-list-section] ...]
[CopyINF=filename1.inf[,filename2.inf]...] (Windows XP and later versions of Windows)
[AddReg=add-registry-section[,add-registry-section]...]
[AddProperty=add-property-section[,add-property-section]...] (Windows Vista and later versions of Windows)
[Include=filename1.inf[,filename2.inf]...]
[Needs=inf-section-name[,inf-section-name]...]
[Delfiles=file-list-section[,file-list-section]...]
[Renfiles=file-list-section[,file-list-section]...]
[DelReg=del-registry-section[,del-registry-section]...]
[DelProperty=del-property-section[,del-property-section]...] (Windows Vista and later versions of Windows)
[FeatureScore=featurescore]... (Windows Vista and later versions of Windows)
[BitReg=bit-registry-section[,bit-registry-section]...]
[LogConfig=log-config-section[,log-config-section]...]
[ProfileItems=profile-items-section[,profile-items-section]...] (Windows 2000 and later versions of Windows)
[UpdateInis=update-ini-section[,update-ini-section]...]
[UpdateIniFields=update-inifields-section[,update-inifields-section]...]
[Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...]
[RegisterDlls=register-dll-section[,register-dll-section]...]
[UnregisterDlls=unregister-dll-section[,unregister-dll-section]...]
[ExcludeID=device-identification-string[,device-identification-string]...]... ((Windows XP and later versions of Windows)
[Reboot]

条目

通用 INF不支持 所有有效的条目。 下面列出了哪些指令在通用 INF 中有效,哪些指令无效。

通用 INF 支持

DriverVer=mm/dd/yyyy[,x.y.v.z]
此可选条目指定 驱动程序包的版本信息。

有关如何指定此项的信息,请参阅 INF DriverVer 指令

CopyFiles=@文件名 | file-list-section[,file-list-section] ...
此指令指定要从源媒体复制到目标的一个命名文件,或者引用一个或多个 INF 编写器定义的节,其中源媒体上的设备相关文件被指定用于传输到目标。 CopyFiles 指令是可选的,但在大多数 DDInstall 节中都存在。

INF 的 DestinationDirs 节中的 DefaultDestDir 条目指定要复制的任何单个文件的目标。 SourceDisksNamesSourceDisksFiles 节,或此 INF 版本 节的 LayoutFile 条目中指定的其他 INF,提供驱动程序文件的分发介质上的位置。

有关详细信息,请参阅 INF CopyFiles 指令

CopyINF=filename1.inf[,filename2.inf]...
(Windows XP 及更高版本)此指令导致指定的 INF 文件复制到目标系统。

有关详细信息,请参阅 INF CopyINF 指令

AddReg=add-registry-section[,add-registry-section]...
此指令引用一个或多个 INF 编写器定义的节,其中新子项(可能具有初始值项)被指定为写入注册表或修改现有键的值项。

此类外接程序注册表部分中 HKR 规范指定所安装的设备的 “软件密钥” 注册表路径。

有关详细信息,请参阅 INF AddReg 指令

AddProperty=add-property-section[,add-property-section]...
(Windows Vista 及更高版本)引用修改为设备实例设置 设备属性的一个或多个 INF 文件部分。 应仅使用 INF AddProperty 指令 设置 Windows Vista 或更高版本的 Windows 操作系统的新设备实例属性。

对于在 Windows Server 2003、Windows XP 或 Windows 2000 上引入的设备实例属性,并且具有相应的注册表项值,应继续使用 INF AddReg 指令 来设置设备实例属性。 这些准则适用于系统定义的属性和自定义属性。 有关如何使用 AddProperty 指令的详细信息,请参阅 使用 INF AddProperty 指令和 INF DelProperty 指令

Include=filename1.inf[,filename2.inf]...
此可选条目指定一个或多个附加的系统提供的 INF 文件,其中包含安装此设备和/或驱动程序所需的部分。 如果指定了此项,通常 需要 项。

例如,依赖于系统的内核流式处理支持的设备驱动程序的 INF 文件可以按如下所示指定此项:

Include= ks.inf, kscaptur.inf, ksfilter.inf

Needs=inf-section-name[,inf-section-name]...
此可选条目指定在安装此设备期间必须处理的系统提供的 INF 文件中的节。 通常,此类命名节是 DDInstall(或 DDInstall.xxx) 节,这些节位于 Include 条目中列出的 INF 文件中。 但是,它可以是此类 DDInstallDDInstall中引用的任何部分。包含的 INF 的 xxx 部分。

例如,具有上述 Include 条目的设备驱动程序的 INF 文件可以按如下所示指定此项:

Needs= KS.Registration, KSCAPTUR.Registration.NT, MSPCLOCK.Installation

FeatureScore=featurescore

警告

仅在直接在 [DDInstall] 节中指定的 FeatureScore 指令时才进行处理。

(Windows Vista 及更高版本)此指令为基于驱动程序支持的功能的驱动程序提供了额外的排名条件。 例如,可以为 设备设置类定义功能分数, 根据特定于类的条件区分驱动程序。

有关如何对驱动程序进行排名的详细信息,请参阅 Windows 排名驱动程序(Windows Vista 及更高版本)

有关此指令的详细信息,请参阅 INF FeatureScore 指令

注意

尽管 DDInstall 节可以包含多个 FeatureScore 条目,但只处理该节的第一个条目。

ExcludeID=device-identification-string[,device-identification-string]...

警告

仅在直接在 [DDInstall] 节中指定的 ExcludeID 指令时才进行处理。

(Windows XP 及更高版本)此指令指定一个或多个设备标识字符串(硬件 ID兼容的 ID)。 DDInstall 部分不安装与列出的任何硬件 ID 或兼容 ID 匹配 设备 ID 的设备。

重启
此指令指示在安装完成后应提示调用方重新启动系统。

有关详细信息,请参阅 INF 重新启动指令

通用 INF 不支持

Delfiles=file-list-section[,file-list-section]...
此指令引用一个或多个 INF 编写器定义的节,其中列出了要删除的目标上的文件。

有关详细信息,请参阅 INF DelFiles 指令

Renfiles=file-list-section[,file-list-section]...
此指令引用一个或多个 INF 编写器定义的节,其中列出了在目标上重命名的文件,然后再将与设备相关的源文件复制到目标计算机。

有关详细信息,请参阅 INF RenFiles 指令

DelReg=del-registry-section[,del-registry-section]...
此指令引用一个或多个 INF 编写器定义的部分,这些节在安装设备期间指定要从注册表中删除键和/或值项。

通常,当 INF 必须清理以前安装此设备的旧注册表项时,此指令用于处理升级。

此类删除注册表部分中 HKR 规范指定所安装的设备的 “软件密钥” 注册表路径。

有关详细信息,请参阅 INF DelReg 指令

DelProperty=del-property-section[,del-property-section]...
(Windows Vista 及更高版本)引用一个或多个 INF 文件节,这些节删除为设备实例设置 设备属性。 应使用 INF DelProperty 指令 删除 Windows Vista 或更高版本的全新设备实例属性。

对于之前在 Windows Server 2003、Windows XP 或 Windows 2000 上引入的设备实例属性,并且具有相应的注册表项值,应继续使用 INF DelReg 指令 删除设备实例属性。 这些准则适用于系统定义的属性和自定义属性。 有关如何使用 DelProperty 指令的详细信息,请参阅 使用 INF AddProperty 指令和 INF DelProperty 指令

BitReg=bit-registry-section[,bit-registry-section]...
此指令引用修改 REG_BINARY 类型的现有注册表项的一个或多个 INF 编写器定义的节。

此类位注册表部分中 HKR 规范指定所安装的设备的 “软件密钥” 注册表路径。

有关详细信息,请参阅 INF BitReg 指令

LogConfig=log-config-section[,log-config-section]...
此指令引用 INF 中根枚举设备或手动安装的设备的 INF 中的一个或多个 INF 编写器定义节。 在这些命名部分中,此类“检测到”或手动安装的设备的 INF 指定设备必须正常运行的总线相对硬件资源的一个或多个逻辑配置。 非软件可配置的此类设备的 INF 还应具有 DDInstall。FactDef 部分。

LogConfig 指令永远不会用于安装即插即用(PnP)设备。 但是,可以使用 INF DDInstall.LogConfigOverride 部分 为 PnP 设备提供替代配置。

此指令与所有更高级别(非evice)驱动程序和组件无关。

有关详细信息,请参阅 INF LogConfig 指令

ProfileItems=profile-items-section[,profile-items-section]...
(Microsoft Windows 2000 及更高版本的 Windows)此很少使用的指令引用一个或多个 INF 编写器定义的部分,这些节描述要添加到“开始”菜单或从中删除的项。

有关详细信息,请参阅 INF ProfileItems 指令

UpdateInis=update-ini-section[,update-ini-section]...
此很少使用的指令引用一个或多个 INF 编写器定义的节,并指定源 INI 文件,在安装过程中,要从中将特定节或行读入同名的目标 INI 文件。 (可选)可以在 update-ini 节中指定对目标上目标上现有 INI 文件的逐行修改。

有关详细信息,请参阅 INF UpdateInis 指令

UpdateIniFields=update-inifields-section[,update-inifields-section]...
此很少使用的指令引用了一个或多个 INF 编写器定义的节,其中指定了特定于设备的 INI 文件的行内的修改。

有关详细信息,请参阅 INF UpdateIniFields 指令

Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...
此很少使用的指令引用一个或多个 INF 编写器定义的节,其中,来自设备特定 INI 文件的节或行(在源媒体上提供)将移动到注册表中。

有关详细信息,请参阅 INF Ini2Reg 指令

RegisterDlls=register-dll-section[,register-dll-section]...
此指令引用一个或多个 INF 节,这些节用于指定 OLE 控件的文件,并且需要自我注册。

有关详细信息,请参阅 INF RegisterDlls 指令

UnregisterDlls=unregister-dll-section[,unregister-dll-section]...
此指令引用一个或多个 INF 节,这些节用于指定 OLE 控件的文件,并且需要自我取消删除(自删除)。

有关详细信息,请参阅 INF UnregisterDlls 指令

言论

在整个 Windows 驱动程序工具包(WDK)文档中,术语 DDInstall 用于引用包含或不使用平台扩展的 install-section-name。 因此,“DDInstall 节”表示“INF 中的命名节,其格式为 [install-section-name] 或 [install-section-name.ntxxx]”。 为 DDInstall 节创建名称时,应包括特定于设备的前缀,例如 [WDMPNPB003_Device][GPR400]。Install.NT]

每个 DDInstall 节必须在特定于设备/型号的条目中引用每个制造商 INF Models INF 文件中。

除了没有要从源媒体传输关联的文件的设备之外,在不同操作系统平台上安装 WDM 驱动程序的 INF 文件必须至少有以下 DDInstall 部分之一:

  • install-section-name.ntx86 节,指定特定于 x86 平台的设备/驱动程序安装的条目。
  • install-section-name.ntia64 节,指定特定于 Itanium 平台的设备/驱动程序安装的条目。
  • install-section-name.ntamd64 节,指定特定于 x64 平台的设备/驱动程序安装的条目。
  • install-section-name.ntarm 节,指定特定于基于 Arm 的平台的设备/驱动程序安装的条目。
  • install-section-name.ntarm64 节,指定特定于 Arm64 平台的设备/驱动程序安装的条目。
  • install-section-nameinstall-section-name.nt 节,用于指定不特定于特定硬件平台的设备/驱动程序安装的条目。

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

从 Windows 2000 开始,安装驱动程序的 INF 文件必须具有 DDInstall.Services 节才能指定驱动程序服务信息。

DDInstall 节中的每个指令都可以引用多个节名称。 但是,每个附加的命名节都必须用逗号(,)分隔下一节。

每个节名称在 INF 文件中必须是唯一的,并且必须遵循定义节名称的一般规则。 有关这些规则的详细信息,请参阅 INF 文件的常规语法规则

假定在 DDInstall 节中指定的任何 AddReg 指令引用加载项注册表部分,该节不能用于存储有关上筛选器驱动程序、关于多功能设备或与驱动程序无关但特定于设备的参数的信息。 如果设备/驱动程序 INF 必须在注册表中存储这种类型的信息,则必须在其未编码和修饰的 DDInstall中使用 AddReg 指令。HW 节(如果有)引用另一个 INF 编写器定义的 add-registry-section

根据在 INF 版本节中指定的 设备安装类,可以在 DDInstall 节中指定其他特定于类的指令。 有关特定于类的指令的详细信息,请参阅以下主题:

例子

此示例显示了 DDInstall 部分、Ser_InstInp_Inst的扩展。 INF Models中引用了这些节。

[Ser_Inst]
CopyFiles=Ser_CopyFiles, mouclass_CopyFiles

[Ser_CopyFiles]
sermouse.sys

[mouclass_CopyFiles] ; section name referenced by > 1 CopyFiles
mouclass.sys

[Inp_Inst]
CopyFiles=Inp_CopyFiles, mouclass_CopyFiles

[Inp_CopyFiles]
inport.sys

以下示例演示 INF 文件的 DDInstall 部分,该文件在各种操作系统平台上为音频设备安装系统提供的 WDM 驱动程序:

[WDMPNPB003_Device.NT]
Include=ks.inf, wdmaudio.inf
Needs=KS.Registration, WDMAUDIO.Registration.NT
CopyFiles=MSSB16.CopyList
AddReg=WDM_SB16.AddReg

以下示例显示了系统提供的 ks.infwdmaudio.inf 文件中上述 需要 条目引用的部分。 在前面的示例中,这些文件是在 包括 条目中指定的。 当操作系统的设备安装程序处理此设备的 install-section-nament 部分,还将处理这两个部分。

[KS.Registration]
; following AddReg= is actually a single line in the ks.inf file
AddReg=ProxyRegistration,CategoryRegistration,\
    TopologyNodeRegistration,PlugInRegistration,PinNameRegistration,\
    DeviceRegistration 
CopyFiles=KSProxy.Files,KSDriver.Files

[WDMAUDIO.Registration.NT]
AddReg=WDM.AddReg
CopyFiles=WDM.CopyFiles.Sys, WDM.CopyFiles.Drv
;
; INF-writer-defined add-registry and file-list sections
; referenced by preceding directives are omitted here for brevity
;

另请参阅

AddProperty

DDInstall。CoInstallers

DDInstall。FactDef

DDInstall。HW

DDInstall。接口

DDInstall。LogConfigOverride

DDInstall。服务

DefaultInstall

DefaultInstall.Services

DelProperty

FeatureScore