INF DefaultInstall 部分
注意
如果要生成 通用驱动程序包,则仅当具有体系结构修饰(例如 [DefaultInstall.NTAMD64]
)时,此部分才有效。
注意
在 INF 中使用 DefaultInstall 和 Manufacturer 部分将导致通用 INF 验证失败,并可能导致安装行为不一致。 请参阅 使用通用 INF 文件。
如果用户在选择并按住 INF 文件名后选择“安装”菜单项,或者右键单击 (INF 文件名) ,则会访问 INF 文件的 DefaultInstall 部分。 在Windows 10版本 1903 及更高版本的 Windows 上,如果具有 DefaultInstall 的 INF 满足基元驱动程序的要求,则可以在许多驱动程序包 API 中使用。
[DefaultInstall] |
[DefaultInstall.nt] |
[DefaultInstall.ntx86] |
[DefaultInstall.ntia64] | (Windows XP and later versions of Windows)
[DefaultInstall.ntamd64] | (Windows XP and later versions of Windows)
[DefaultInstall.ntarm] | (Windows 8 and later versions of Windows)
[DefaultInstall.ntarm64] (Windows 10 version 1709 and later versions of Windows)
[CopyFiles=@filename | file-list-section[,file-list-section] ...]
[CopyINF=filename1.inf[,filename2.inf]...]
[AddReg=add-registry-section[,add-registry-section]...]
[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]...]
[BitReg=bit-registry-section[,bit-registry-section]...]
[ProfileItems=profile-items-section[,profile-items-section]...]
[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]...] ...
项
并非所有有效的条目在 通用 INF 中都受支持。 下面列出了哪些指令在通用 INF 中有效,哪些指令无效。
在通用 INF 中受支持
CopyFiles=@filename | file-list-section[,file-list-section] ...
此可选指令指定要从源介质复制到目标的一个命名文件,或者引用一个或多个 INF 编写器定义的部分,这些节指定要从源媒体传输到目标的文件。
INF 的 DestinationDirs 节中的 DefaultDestDir 条目指定要复制的任何单个文件的目标。 SourceDisksNames 和 SourceDisksFiles 部分,或在此 INF 版本部分的 LayoutFile 条目中指定的其他 INF,提供驱动程序文件的分发媒体上的位置。
有关详细信息,请参阅 INF CopyFiles 指令。
CopyINF=filename1.inf[,filename2.inf]...
(Windows XP 和更高版本的 Windows.) 此指令会导致将指定的 INF 文件复制到目标系统。
有关详细信息,请参阅 INF CopyINF 指令。
AddReg=add-registry-section[,add-registry-section]...
此指令引用一个或多个 INF 编写器定义的部分,这些节中的新子项(可能具有初始值条目)被指定写入注册表或在其中修改现有键的值条目。
有关详细信息,请参阅 INF AddReg 指令。
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) 包含 条目中列出的某个 INF 文件中的节。 但是,它可以是此类 DDInstall 或 DDInstall 中引用的任何部分。包含的 INF 的 xxx 节。
例如,具有上述 Include 条目的设备驱动程序的 INF 文件指定此项,如下所示:
Needs= KS.Registration,KSCAPTUR.Registration.NT,MSPCLOCK.Installation
在通用 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 DelReg 指令。
BitReg=bit-registry-section[,bit-registry-section]...
此指令引用一个或多个 INF 编写器定义的部分,其中修改 了REG_BINARY 类型的现有注册表值条目。 有关详细信息,请参阅 INF AddReg 指令。
有关详细信息,请参阅 INF BitReg 指令。
ProfileItems=profile-items-section[,profile-items-section]...
此指令引用一个或多个 INF 编写器定义的部分,这些节描述要添加到“开始”菜单或从“开始”菜单中删除的项。
有关详细信息,请参阅 INF ProfileItems 指令。
UpdateInis=update-ini-section[,update-ini-section]...
此很少使用的指令引用一个或多个 INF 编写器定义的节,指定源 INI 文件,在安装过程中,此类节中的特定节或行将读取到同名的目标 INI 文件中。 (可选)可以从同名的指定源 INI 文件对目标上的现有 INI 文件进行逐行修改,可以在 update-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 指令。
注解
DefaultInstall 节不得用于设备安装。 仅将 DefaultInstall 节用于安装类筛选器驱动程序、文件系统筛选器和内核驱动程序服务,这些驱动程序与设备节点 (devnode) 。
如果在 Windows 10 版本 1903 及更高版本的 Windows 上使用 DefaultInstall,建议 INF 文件满足基元驱动程序的要求。
注意
如果要对 驱动程序包 进行数字签名,则具有 “制造商 ”部分的驱动程序包的 INF 文件不得包含 INF DefaultInstall 节。 有关对驱动程序包进行签名的详细信息,请参阅 驱动程序签名。
若要从设备安装应用程序安装DefaultInstall 部分,请使用对 InstallHinfSection 的以下调用:
InstallHinfSection(NULL,NULL,TEXT("DefaultInstall 132 path-to-inf\infname.inf"),0);
有关如何使用系统定义的 .nt、 .ntx86、 .ntia64、 .ntamd64、 .ntarm 和 .ntarm64 扩展的详细信息,请参阅 为多个平台和操作系统创建 INF 文件。
示例
以下示例演示典型的 DefaultInstall 部分:
[DefaultInstall]
CopyFiles=MyAppWinFiles, MyAppSysFiles, @SRSutil.exe
AddReg=MyAppRegEntries