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

INF 的 DestinationDirs 节中的 DefaultDestDir 条目指定要复制的任何单个文件的目标。 SourceDisksNamesSourceDisksFiles 部分或在此 INF 的 Version 部分的 LayoutFile 条目中指定的其他 INF 提供驱动程序文件的分发媒体上的位置。

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

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

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

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

此类 add-registry 节中的 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 (或 DDInstallxxx) Include 条目中列出的其中一个 INF 文件的节。 但是,它可以是此类 DDInstall 或 DDInstall 中引用的任何部分包含的 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 必须清除以前安装此设备的旧注册表项时,此指令用于处理升级。

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

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

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

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

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

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

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

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

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

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

有关详细信息,请参阅 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 文件中现有 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 文件的“按制造商 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 指令引用不能用于存储有关上限或较低筛选器驱动程序、有关多功能设备或与驱动程序无关但特定于设备的参数的信息的 add-registry 节。 如果设备/驱动程序 INF 必须在注册表中存储这种类型的信息,则必须在其未修饰和修饰的 DDInstall 中使用 AddReg 指令。HW 部分(如果有)引用另一个 INF 编写器定义的 add-registry-section

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

示例

此示例演示 DDInstall 部分的扩展, Ser_InstInp_InstINF 模型部分的示例中引用了这些部分。

[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 文件中上述 Needs 条目引用的部分。 在前面的示例中,这些文件在 Include 条目中指定。 当操作系统的设备安装程序处理此设备的 install-section-name 时。nt 节,接下来的两个部分也会处理。

[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。硬件

DDInstall。接口

DDInstall。LogConfigOverride

DDInstall。服务

DefaultInstall

DefaultInstall.Services

DelProperty

FeatureScore