InfVerif /h
注意
InfVerif /h 是在 Windows 11 版本 24H2 中引入的。
InfVerif /h
是 InfVerif 的新模式,它使用一组 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 |