INF ControlFlags 部分

ControlFlags 部分标识 Windows 应在安装过程中对其执行某些唯一操作的设备。

[ControlFlags]

ExcludeFromSelect=* | 
ExcludeFromSelect=device-identification-string[,device-identification-string] ...] | 
[ExcludeFromSelect.nt=device-identification-string[,device-identification-string] ...] | 
[ExcludeFromSelect.ntx86=device-identification-string[,device-identification-string] ...] | 
[ExcludeFromSelect.ntia64=device-identification-string[,device-identification-string] ...]  |  (Windows XP and later versions of Windows)
[ExcludeFromSelect.ntamd64=device-identification-string[,device-identification-string] ...]  |  (Windows XP and later versions of Windows)
[ExcludeFromSelect.ntarm=device-identification-string[,device-identification-string] ...]  |  (Windows 8 and later versions of Windows)
[ExcludeFromSelect.ntarm64=device-identification-string[,device-identification-string] ...]  |  (Windows 10 version 1709 and later versions of Windows)

[CopyFilesOnly=device-identification-string[,device-identification-string] ...]
[InteractiveInstall=device-identification-string[,device-identification-string] ... ]
[RequestAdditionalSoftware=*] | 
[RequestAdditionalSoftware=device-identification-string[,device-identification-string] ...]  (Windows 7 through Windows 10 version 1709)

device-identification-string
标识按制造商 INF 模型部分指定的硬件ID 或兼容 ID。 每个字符串必须用逗号 (,) 分隔。

ExcludeFromSelect
如果) 指定了 * 或显示某些用户界面中的指定设备列表(用户应从其中选择要安装的特定设备),则删除所有 (。

对于 Windows 2000 及更高版本的 Windows,指定的设备由“查找新硬件向导”和“硬件更新向导”显示。

若要从此显示中排除一组 OS 不兼容或平台不兼容的设备,一个或多个 ExcludeFromSelect 条目可以追加以下不区分大小写的扩展:

。Nt
不要在运行 Windows 2000 或更高版本的 Windows 的计算机上显示这些设备。

.ntx86
不要在运行 Windows 2000 或更高版本 Windows 的基于 x86 的计算机上显示这些设备。

.ntia64
不要在运行 Windows XP 或更高版本 Windows 的基于 Itanium 的计算机上显示这些设备。

.ntamd64
不要在运行 Windows XP 或更高版本 Windows 的基于 x64 的计算机上显示这些设备。

.ntarm
不要在运行 Windows 8 或更高版本的 Windows 的基于 Arm 的计算机上显示这些设备。

.ntarm64
不要在运行 Windows 10 版本 1709 或更高版本的 Windows 的基于 Arm64 的计算机上显示这些设备。

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

CopyFilesOnly
仅为给定设备安装 INF 指定的文件,因为设备硬件尚不可访问或不可用。

很少使用此条目。 但是,它可用于预安装设备的驱动程序,卡稍后将位于当前正在使用的特定槽中。 例如,如果当前位于特定槽中的设备需要将 INF 指定的文件传输到目标,则 INF 将具有此条目。

InteractiveInstall
强制在用户的上下文中安装指定的设备列表。 每行可以指定一个或多个硬件 ID 或兼容 ID,并且可以有一个或多个行。

此项是可选的。 安装设备的首选方法是省略此项并允许 Windows 在受信任的系统线程的上下文中安装设备(如果可能)。 但是,如果设备在安装设备时绝对要求用户登录,请在设备 INF 中包含此项。

RequestAdditionalSoftware
指定) 指定 * 或指定的设备列表可能需要比通过设备 驱动程序包 安装的软件更多的软件,则所有 (。 例如, RequestAdditionalSoftware 条目可用于安装驱动程序包中未包含的新软件或更新的设备特定软件。

注意

如果未指定 * ,则必须在 INF Models 节中定义 RequestAdditionalSoftware 条目指定的每个设备。

此项是可选的,在 Windows 7 到 Windows 10 版本 1709 中受支持。

Windows 为设备安装驱动程序包后,如果 INF 文件中指定了 RequestAdditionalSoftware 条目,即插即用 (PnP) 管理器将执行以下步骤:

  1. PnP 管理器生成类型为 RequestAdditionalSoftware 的问题报告和解决方案 (PRS) 错误报告。 此报表包含有关设备的特定硬件 ID 和计算机的系统体系结构的信息。

  2. 如果独立硬件供应商提供的解决方案 (IHV) 设备特定软件,则解决方案将下载到计算机。

    注意

    下载解决方案不会安装软件本身。

  3. 如果计算机上未安装特定于设备的软件,PnP 管理器会向用户提供解决方案,并提供用于下载软件的链接。 然后,用户可以按照解决方案中提供的说明选择下载并安装此软件。

注解

通常, ControlFlags 节具有一个或多个 ExcludeFromSelect 条目,用于标识按制造商 的 INF 模型部分列出的设备,但在手动安装期间不应将其作为选项显示给最终用户。

ExcludeFromSelect 条目中列出设备的硬件ID 或兼容 ID 会将其从显示给最终用户的显示器中删除。 为 ExcludeFromSelect 值指定星号 (*) 会从此用户可见列表中删除 INF 文件中定义的所有设备/模型。

INF 编写器应谨慎使用 InteractiveInstall 指令,并且仅在以下情况下使用:

  • 为已损坏或错误定义硬件 ID 的设备安装驱动程序。 例如,当两个或多个不同的设备共享相同的硬件 ID 时。 即插即用标准严格禁止这种情况,但某些硬件供应商在硬件中犯了此错误。
  • 为需要自己的驱动程序的设备安装驱动程序,并且绝对不能使用通用类驱动程序或操作系统提供的其他驱动程序。 InteractiveInstall 条目强制设备管理器要求用户确认兼容的 ID 匹配项。

注意

将来,WHQL 可能不会向 INF 文件包含 InteractiveInstall 条目的设备授予 Windows 徽标。

独占安装 PnP 设备的 INF 文件可以具有 ControlFlags 部分,除非它们将各自的设备安装程序类 GUID 设置中的 NoInstallClass 值条目设置为 TRUE。 有关这些设置的详细信息,请参阅 INF ClassInstall32 部分

示例

系统鼠标类 INF 中 ControlFlags 部分的此示例禁止显示无法安装在 x86 平台上的设备/模型。

[ControlFlags]
; Exclude all bus mice and InPort mice for x86 platforms
ExcludeFromSelect.ntx86=*PNP0F0D,*PNP0F11,*PNP0F00,*PNP0F02,*PNP0F15
; Hide this entry always
ExcludeFromSelect=UNKNOWN_MOUSE

以下 INF 文件片段显示了两个设备:一个设备完全支持 PnP,在安装期间不需要用户干预,另一个需要自己的驱动程序,不能使用任何其他驱动程序。 为第二个设备指定 InteractiveInstall 将强制 Windows 在用户上下文中安装此设备, (具有) 管理权限的用户。 这包括根据需要提示用户输入驱动程序文件 (INF 文件、驱动程序文件等) 的位置。

; ...
[Manufacturer]
%Mfg% = ModelsSection

[ModelsSection]
; Models section, with two entries
%Device1.DeviceDesc% = Device1.Install, \
    PCI\VEN_1000&DEV_0001&SUBSYS_00000000&REV_01
%Device2.Device.Desc%= Device2.Install, \
    PCI\VEN_1000&DEV_0001&SUBSYS_00000000&REV_02

[ControlFlags]
InteractiveInstall = \
  PCI\VEN_1000&DEV_0001&SUBSYS_00000000&REV_02
; ...

另请参阅

ClassInstall32

制造商

模型