InfVerif /h

注意

InfVerif /h 是在 Windows 11 版本 24H2 中引入的。

InfVerif /hInfVerif 的新模式,它使用一组 INF 要求进行验证,这些要求会随每个版本的发布而变化,以符合硬件开发人员中心对 WHQL 签名的要求。 随着时间的推移,这些要求将变得越来越严格,并最终与驱动程序包隔离要求保持一致。

InfVerif /h 会检查 INF 可安装的所有 OS 版本,并使用相应 OS 版本的相应规则自动评估 INF。 例如,在 INF 文件中,使用版本修饰来更改不同 OS 版本的行为:

Contoso = Models, NTAMD64, NTAMD64.10.0...22000

InfVerif /h 将在内部验证此 INF 两次,一次使用内部版本 21999 的规则验证 [Models] 部分 [Models.NTAMD64] (将使用该 [Models] 部分的最高 OS 版本),一次使用最新的规则集验证 [Models] 部分 [Models.NTAMD64.10.0...22000]。 仅具有单个 [Models] 部分的 INF 文件只能根据最新的规则集进行验证。

使用情况

若要使用利用默认行为的 InfVerif /h,请执行以下操作:

infverif.exe /h <INF file> [<INF file>]

InfVerif /h 还允许使用“/rulever”参数指定 InfVerif 将使用的最高规则集,例如:

infverif.exe /h /rulever NTAMD64.10.0...17763 <INF file>

使用“/rulever”参数可能会导致忽略 INF 的某些部分。 将上述参数与前面的示例结合使用,[Models] 部分 [Models.NTAMD64] 将使用内部版本 17763 的规则,且 [Models.NTAMD64.10.0...22000] 将不会被验证,因为指定的规则集不适用于它。

添加详细选项将导致 InfVerif 输出计算期间使用的最大规则集:

> infverif.exe /h /v <INF file>

Running in Verbose
Running signature requirements check
Using rules from OS build: 10.0.26080

> infverif.exe /h /rulever NTAMD64.10.0...17763 <INF file>

Running in Verbose
Running signature requirements check
Using rules from OS build: 10.0.17763

InfVerif /h 还可以使用未来的规则集。 有一个内置的“vnext”OS 版本,它将使用未来一个 OS 版本所需的规则。 “vnext”强制执行的规则并非最终规则,而最终版本可能会更改,但其目的是为了提供有关未来要求的良好见解。

infverif.exe /h /rulever vnext <INF file>

要求

InfVerif /h 规则集符合 WHCP 程序的要求。 这些要求被定义为完整的驱动程序包隔离要求,并应用了一组例外。 在 InfVerif /h 强制实施所有驱动程序包隔离要求之前,每个版本都会删除一些异常。

注意

不应使用下面列出的任何异常,因为在即将发布的版本中将不再允许使用这些异常。

截至 2024 年 4 月的当前要求

注册表
INF 文件不得修改任何全局注册表位置,而只能使用 HKR 注册表根目录修改或创建带有 AddReg 指令的注册表信息。 以下路径是此要求的当前异常:

Root 子项
HKLM SYSTEM\CurrentControlSet
HKLM SOFTWARE\Classes
HKLM SOFTWARE\Khronos
HKLM SOFTWARE\Microsoft\Analog\Providers
HKLM SOFTWARE\Microsoft\Cellular\MVSettings\DeviceSpecific\CellUX
HKLM SOFTWARE\Microsoft\Cryptography\Calais\Readers
HKLM SOFTWARE\Microsoft\Cryptography\Calais\SmartCards
HKLM SOFTWARE\Microsoft\Cryptography\DRM_RNG
HKLM SOFTWARE\Microsoft\EAPOL
HKLM SOFTWARE\Microsoft\Palm\DelayManipulationDuration
HKLM SOFTWARE\Microsoft\Shell\OEM\QuickActions\ColorProfileQuickAction
HKLM SOFTWARE\Microsoft\Speech_OneCore\AudioInput
HKLM SOFTWARE\Microsoft\Windows Media Foundation
HKLM SOFTWARE\Microsoft\Windows NT\CurrentVersion\AdaptiveDisplayBrightness
HKLM SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc
HKLM SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32
HKLM SOFTWARE\Microsoft\Windows NT\CurrentVersion\ICM
HKLM SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGlDrivers
HKLM SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\ScCertProp
HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Audio
HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication
HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel
HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Controls Folder
HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer
HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Reliability\UserDefined
HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
HKLM SOFTWARE\Wow6432Node\Microsoft\Windows Media Foundation
HKLM SOFTWARE\Wow6432Node\Khronos
HKLM SOFTWARE\WowAA32Node\Microsoft\Windows Media Foundation
HKLM SOFTWARE\WowAA32Node\Khronos
HKCR

文件路径
必须在 INF 中将 DIRID 13 指定为 [DestinationDirs] 部分中所有条目的目标位置。 以下值是此要求的例外情况:

DIRID 值
DIRID 10
DIRID 11
DIRID 12
DIRID 23
DIRID 51
DIRID 52
DIRID 55
DIRID 16422
DIRID 16425
DIRID 16426
DIRID 16427
DIRID 16428
DIRID 66000
DIRID 66001
DIRID 66002
DIRID 66003
DIRID 66004