注意
InfVerif /h 是在 Windows 11 版本 24H2 中引入的。
InfVerif /h 是一种 InfVerif 的新模式,它使用一组 INF 要求进行验证,这些要求随每个版本更改,以符合硬件开发人员中心对 WHQL 签名的要求。 随着时间的推移,要求将变得更加严格,最终将与 驱动程序包隔离 要求保持一致。
InfVerif /h 检查 INF 可安装的所有 OS 版本,并使用相应操作系统版本的相应规则自动评估 INF。 例如,在一个使用 版本修饰符 的 INF 文件中,可以更改不同操作系统版本的行为。
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 还允许指定 InfVerif 将使用“/rulever”参数的最高规则集,例如:
infverif.exe /h /rulever 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 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 指令的注册表信息。 以下路径是此要求的当前异常:
| 根 | 子项 |
|---|---|
| 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\控制面板 |
| HKLM | SOFTWARE\Microsoft\Windows\CurrentVersion\Controls 文件夹 |
| 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 |