INF ClassInstall32 节

注意 如果要生成通用或移动驱动程序包,则本部分无效。 请参阅 使用通用 INF 文件

ClassInstall32 节将安装新的设备 安装程序 (类安装程序,) 类安装程序用于新类中的设备。

[ClassInstall32] | 
[ClassInstall32.nt] | 
[ClassInstall32.ntx86] |
[ClassInstall32.ntarm] | (Windows 8 and later versions of Windows) 
[ClassInstall32.ntarm64] | (Windows 10 version 1709 and later versions of Windows) 
[ClassInstall32.ntia64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntamd64] (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)
[Copyfiles=@filename | 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)
[Delfiles=file-listsection[,file-list-section]...]
[Renfiles=file-list-section[,file-list-section]...]
[BitReg=bit-registry-section[,bit-registry-section]...]
[UpdateInis=update-ini-section[,update-ini-section]...]
[UpdateIniFields=update-inifields-section[,update-inifields-section]...]
[Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...]

AddReg=add - registry - [ section,add - registry - section ] ...
引用包含要写入注册表的特定于类的值条目的一个或多个命名节。 通常,这用于至少为新设备安装程序类指定一个友好名称,其他组件稍后可以从注册表中检索该名称,并使用该名称打开此新设备类的已安装设备、为此设备安装程序类"安装"任何新的设备类安装程序和/或属性页提供程序,等等。

任何 add-registry-section 中的 HKR 规范都指定 。类 \ {SetupClassGUID} 注册表项。 有关其他信息,请参阅以下 "备注" 部分。

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

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

对于之前在 Windows Server 2003、Windows XP 或 Windows 2000 上引入且具有相应注册表项值的设备类属性,应继续使用 INF AddReg指令设置设备安装程序类属性。 这些指南适用于系统定义的属性和自定义属性。

若要详细了解如何使用 AddProperty 指令,请参阅 使用 INF AddProperty 指令和 INF DelProperty 指令

Copyfiles=@filename | file - list - section [ file - list - section ] ...
指定一个命名文件从源媒体复制到目标,或引用一个或多个命名部分,其中指定源媒体上的类相关文件以传输至目标。 INF 的 DestinationDirs节中的 DefaultDestDir 条目指定要复制的任何特定于类的单一文件的目标目录。

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

注意 系统为设备安装程序类提供的 INF (和类安装程序) 本部分中不使用此指令。

DelReg=del - registry - [ del - registry - section ] ...
引用一个或多个命名节,其中指定值项或键在类安装程序安装过程中从注册表中删除。

但是,如果注册表 中存在特定的 {SetupClassGUID} 子项 。。类 分支,系统安装代码随后会忽略在其 Version 节中指定相同 GUID 值的任何 INF 的 ClassInstall32****节。 因此,INF 无法替换现有类安装程序,也无法从 ClassInstall32 节修改其行为。 若要修改现有类安装程序的行为,请使用类特定的共同安装程序。

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

DelProperty=del-property-section [ del-property-section ] ...
(Windows Vista 及更高版本的 Windows) 引用一个或多个 INF 文件部分,用于删除为设备设置类 设置的设备属性。 应仅使用 INF DelProperty指令删除 Vista 或更高版本的 Windows 操作系统的新设备安装程序类Windows属性。

对于之前在 Windows Server 2003、Windows XP 或 Windows 2000 上引入且具有相应注册表项值的设备类属性,应继续使用 INF DelReg指令删除设备安装程序类属性。 这些指南适用于系统定义的属性和自定义属性。

若要详细了解如何使用 DelProperty 指令,请参阅 使用 INF AddProperty 指令和 INF DelProperty 指令

Delfiles=file-listsection, [ file - list - section ] ...
引用指定删除目标上以前安装的类相关文件的一个或多个命名节。

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

Files=file-list-section, [ file - list - section ] ...
引用一个或多个命名节,其中列出了目标上要重命名的类相关文件。

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

BitReg=bit-registry-section [ bit-registry-section ] ...
在本部分有效,但几乎从未使用过。

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

UpdateInis =update-ini-section [ ,update-ini-section ]...
在本部分有效,但几乎从未使用过。

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

UpdateIniFields=update-inifields-section [ update-inifields-section ] ...
在本部分有效,但几乎从未使用过。

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

Ini2Reg=ini-to-registry-section [ ini-to-registry-section ] ...
在本部分有效,但几乎从未使用过。

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

备注

应仅在设备 INF 文件 包含 ClassInstall32 节,以安装新的自定义设备安装程序类。 已安装类中设备的 INF 文件(无论是系统提供的 设备安装程序类还是自定义类)不应包含 ClassInstall32 节。 由于系统仅在尚未安装类时处理 ClassInstall32 节,因此不能使用 ClassInstall32 节重新安装或更改已安装类的设置。 具体而言,不能使用 ClassInstall32 节为已安装的类添加类共同安装程序或类筛选器驱动程序。 若要了解如何安装共同安装程序和筛选器驱动程序, 请参阅编写共同 安装程序和 安装筛选器驱动程序

通常 ,ClassInstall32 节具有一个或多个 AddReg 指令,用于添加注册表中系统提供的 SetupClassGUID 子项下的条目。 这些条目可以包括特定于类的"友好名称"、类安装程序路径、类图标、属性页提供程序等。

除了 AddRegCopyFiles 之外,此处显示的其他指令很少在 ClassInstall32 节中使用。

若要支持驱动程序文件的多平台分发,请构造特定于平台的 ClassInstall32 节。 例如,处理 ClassInstall32 节的所有系统 SetupAPI 函数将首先搜索 x86 平台上的 ClassInstall32.ntx86 节,并且如果找不到 ClassInstall32.ntx86 节,则仅检查未修饰的 ClassInstall32 节。 若要详细了解如何使用系统定义的 .nt、.ntx86、.ntia64、.ntamd64、.ntarm 和 .ntarm64 扩展,请参阅为多个平台和操作系统创建 INF文件。

注意 ClassInstall32 节名称还用于 64 位平台上的安装。

从 Windows 2000 开始,每个已安装的设备都与注册表中的设备安装程序类相关联。 如果要安装的设备的 INF 未与新的设备类安装程序关联,或者"版本"部分中的 ClassGUID= 规范与系统定义的安装程序类 GUID 不匹配,将在 下创建该设备的注册表子 项。类 \ {UnknownClassGUID}

任何设备类安装程序的 INF 通常在其 ClassInstall32 节中具有 AddReg 指令,用于定义至少一个命名节,以创建其设备类型的友好名称。 安装新) 安装程序类的第一个设备时,安装代码会自动从 IN (F 的 Version 部分中 为 ClassGUID= 条目提供的值在注册表中创建 SetupClassGUID 子项。

在此 SetupClassGUID 子项下,此类 INF 还通过使用其 DDInstall 节中的其他 AddReg 指令为特定于模型的子项提供注册表信息。 此外,INF 可以使用 ClassInstall32 节中引用的 add-registry 节来指定属性页提供程序,并控制如何在用户界面中处理其设备类。

此类特定于类的 add-registry 节具有以下常规形式:

[SetupClassAddReg]
 
HKR,,,,%DevClassName% ; device-class friendly name 
[HKR,,Installer32,,"class-installer.dll,class-entry-point"] 
[HKR,,EnumPropPages32,,"prop-provider.dll,provider-entry-point"]
HKR,,Icon,,"icon-number" 
[HKR,,SilentInstall,,1]
[HKR,,NoInstallClass,,1]
[HKR,,NoDisplayClass,,1]

系统使用指定的图标向用户表示安装程序。

  • 如果 Icon 值为正,则它表示资源的资源标识符。 如果指定了 Installer32 键,则从类安装程序 DLL 中提取资源;如果指定了 EnumPropPages32 键,则从属性页 DLL 中提取资源。 值"0"表示 DLL 中的第一个图标。 保留值"1"。
  • 如果 Icon 值为负,则绝对值是图标的资源标识符SetupApi.DLL。

在特定于类的注册表项中设置预定义 的 SilentInstall、NoDisplayClassNoInstallClass 布尔值条目具有以下效果:

  • 设置 SilentInstall 将指导安装程序在安装此类设备时不向需要响应的用户发送任何弹出消息,无论是在类安装程序的 INF 文件的 DDInstall 节中指定,还是通过设置相应版本部分中相同的 ClassGuid={ClassGUID} 规范,在随后安装的设备中指定此类的单独 INF 文件中。 例如,CD-ROM 和磁盘设备的系统类安装程序以及系统并行端口类安装程序在各自的注册表项中设置 SilentInstall。

    如果特定于类的安装程序要求为它安装的任何设备重启计算机,则其 INF 中特定于类的 add-registry 节不能具有此值条目。

  • 设置 NoDisplayClass 可禁止显示此类的所有设备的用户设备管理器。 例如,打印机和网络驱动程序的系统类安装程序 (包括客户端、服务和协议) 在各自的注册表项中设置 NoDisplayClass。

  • 设置 NoInstallClass 表示最终用户不需要手动安装任何此类设备。 例如,专用于 PnP 即插即用 (的系统类安装程序) 各自的注册表项中设置 NoInstallClass。

ClassInstall32 节可以包含 AddReg 指令,用于设置其安装程序类设备的 DeviceType、DeviceCharacteristics 和安全。 有关详细信息 ,请参阅 INF AddReg 指令。

示例

此示例显示了系统显示类安装程序的 INF 的 ClassInstall32 节,以及它引用的命名节以及 AddReg指令。

[ClassInstall32] 
AddReg=display_class_addreg

[display_class_addreg]
HKR,,,,%DisplayClassName%
HKR,,Installer32,,"Desk.Cpl,DisplayClassInstaller"
HKR,,Icon,,"-1"

相比之下,此示例显示系统 CD-ROM INF 的 ClassInstall32 部分引用的 add-registry 节。 它为它安装的 CD-ROM 设备/驱动程序设置特定于类的属性页提供程序。 此 INF 还将 CD-ROM 类键中的 SilentInstallNoInstallClass 值条目 (TRUE) 。

[cdrom_class_addreg]
HKR,,,,%CDClassName%
HKR,,EnumPropPages32,,"SysSetup.Dll,CdromPropPageProvider"
HKR,,SilentInstall,,1
HKR,,NoInstallClass,,1
HKR,,Icon,,"101"

请参阅

AddProperty

AddReg

BitReg

CopyFiles

DDInstall

DelFiles

DelProperty

DelReg

Ini2Reg

模型

RenFiles

SetupDiBuildClassInfoListEx

UpdateIniFields

UpdateInis

版本