InfVerif.exe命令 示例展示了如何使用复杂的命令组合来执行全面的验证、依赖关系分析、安全性检查、设备兼容性验证等高级任务。通过结合多种检查选项,你可以确保驱动程序文件在不同的操作系统版本、设备和硬件配置中均能正常工作,同时确保它们符合安全性和合规性要求。

InfVerif - Windows drivers | Microsoft Learn

InfVerif (InfVerif.exe) 是一个可以用来测试驱动程序 INF 文件的工具。 InfVerif 的工作原理是将 INF 传递给 OS 使用的同一 INF 分析器,并将日志记录和错误检查调到最大。

 备注

InfVerif 替换 ChkINF 工具。

使用 Windows 驱动程序工具包 (WDK) 10 及更高版本在 Microsoft Visual Studio 2015 中生成驱动程序时,编译器会作为生成过程的一部分自动运行该工具。 或者也可以从命令行运行 InfVerif.exe工具。

验证工具是 WDK 10 安装的一部分,可在 WDK 10 安装的 \tools 子目录 C:\Program Files (x86)\Windows Kits\10\Tools\ 中找到。

InfVerif 根据参数提供的模式和规则来报告错误和警告。 错误应被视为“必须修复”。 如果完全理解警告,就可以忽略它们,但它们通常是另一个问题的症状。 例如,有关未使用的部分的警告可能是调用 INF 指令错误的症状。

InfVerif /h - Windows drivers | Microsoft Learn

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

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

InfVerif /h 检查 INF 可安装的所有 OS 版本,并使用相应操作系统版本的相应规则自动评估 INF。 例如,在一个使用 版本修饰符 的 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,请执行以下操作:

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

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

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

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

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

command
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”强制执行的规则不是最终规则,并且可能会对最终版本进行更改,但旨在提供有关未来要求的良好见解。

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

要求

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

 备注

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

截至 2024 年 4 月的当前要求

注册表

INF AddReg 指令 - Windows drivers | Microsoft Learn
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 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

从命令行运行 InfVerif - Windows drivers | Microsoft Learn

USAGE: InfVerif.exe [/code <error code>] [/v] [[/h] | [/w] | [/u] | [/k]]
                    [/rulever <Major.Minor.Build> | vnext]
                    [/wbuild <Major.Minor.Build>] [/info] [/stampinf]
                    [/l <path>] [/osver <TargetOSVersion>] [/product <ias file>]
                    [/provider <ProviderName>] <files>

/code <error code>
        Display help information for an error code.

/v
        Display verbose file logging details.

/h
        Reports errors using WHQL Signature requirements. (mode)

        This mode uses requirements that always align with the requirements
        to get a WHQL signature, current as of this InfVerif version. These
        requirements may change build-to-build.

        This mode can be combined with '/rulever vnext' to preview proposed
        future requirements.

/w
        Reports errors using Windows Driver requirements. (mode)

/u
        Reports errors using Universal Driver requirements. (mode)

/k
        Reports errors using Declarative Driver requirements. (mode)

/wbuild <Major.Minor.Build>
        For Windows Drivers that have downlevel support, specifies
        the build number where /w should be enforced.
        Defaults to 10.0.17763

/rulever <Major.Minor.Build>
        To use a previous or future version of InfVerif enforcement, specifies
        the build number to use rule enforcement from.
        Defaults to the current InfVerif version

/info
        Displays INF summary information.

/stampinf
        Treat $ARCH$ as a valid architecture, to validate
        pre-stampinf files.

/l <path>
        An inline-annotated HTML version of each INF
        file will be placed in the <path>.

/osver <TargetOsVersion>
        Process the INF for only a specific target OS.
        Formatting is the same as a Models section, i.e. NTAMD64.6.0

/product <ias file>
        Validates all include/needs directives against
        the product definition in the ias file.

/provider <ProviderName>
        Reports an error for INFs not using the specified provider name.

<files>
        A space-separated list of INF files to analyze.
        All files must have .inf extension.
        Wildcards (*) may be used.

Only one mode option may be passed at a time.

有关错误代码的信息,请参阅 INF 验证错误和警告

详细选项会在输出中添加一行,说明 INF 是否有效。 某些参数标记为模式,其中只应传递一个参数。

有关 TargetOSVersion 格式的示例,请参阅 INF 制造商部分的“备注”部分。

要验证多个 INF 文件,请提供多个文件名或使用通配符:

command
infverif.exe /w test1.inf test2.inf
infverif.exe /w test*.inf

Windows 10 版本 1703 的新增功能:信息选项对于验证 INF 适用性特别有用。 它报告每个受支持的硬件 ID 以及有效的体系结构和最低 OS 版本。 可以将 /info 和 /osver 一起使用来验证 INF 在 OS 版本和体系结构中的适用性。

Windows 10 版本 1809 的新增功能:如果正在开发 Windows 驱动程序,请使用infverif /w(理想情况下/v)来确定与 DCH 设计原则声明性 (D) 原则的兼容性。 该 /w 标志还检查 INF 是否符合 Windows 驱动程序开发入门驱动程序包隔离要求。

新的 Windows 11 版本 24H2:引入了新的“/code”参数,以提供有关错误代码的扩展详细信息。 引入了新的模式“infverif /h”,以确定 INF 文件是否满足硬件开发中心 WHQL 签名驱动程序包的要求。 有关“infverif /h”的其他详细信息,请参阅 InfVerif /h

InfVerif 和 MSBuild 任务

MSBuild 将 InfVerif 作为任务自动运行,就在 Stampinf 任务之后。 它使用项目属性(配置属性->驱动程序设置)中的目标平台自动配置,如下所示:

  • 目标平台 = 桌面使用InfVerif /h
  • 目标平台 = 通用使用 InfVerif /u
  • 目标平台 = Windows 驱动程序使用 InfVerif /w

无法更改该自动调用。 如果要使用上述其他设置,则可以使用 .vcxproj 文件中的自定义目标以独立方式运行 InfVerif 或调用InfVerif.exe。


Microsoft (R) 驱动程序包 INF 验证工具

版本 10.0.22000.1

用法: InfVerif.exe [/v] [[/w] | [/u] | [/k]] [/info] [/stampinf] [/l <路径>] [/osver TargetOSVersion] [/product <ias 文件>] <文件列表>

  • /v 显示详细的文件日志记录信息。

  • /k 报告适用于 Windows 更新提交的错误。(模式)

  • /u 报告符合通用驱动程序要求的错误。(模式)

  • /w 报告符合 Windows 驱动程序要求的错误。(模式)

  • /info 显示 INF 文件的摘要信息。

  • /stampinf$ARCH$ 视为有效的架构,以验证预 stampinf 文件。

  • /l <路径> 每个 INF 文件的内联注释 HTML 版本将被放置在指定的 <路径> 中。

  • /osver <目标操作系统版本> 为目标操作系统处理 INF 文件。格式与 Models 部分相同,例如 NTAMD64.6.0。

  • /product <ias 文件> 根据 ias 文件中的产品定义验证所有 include/needs 指令。

  • <文件列表> 要分析的 INF 文件列表,文件之间用空格分隔。所有文件必须具有 .inf 扩展名,可以使用通配符(*)。

注意:

每次只能传递一个模式选项(/k, /u, /w)。

InfVerif.exe 是一个用于验证 INF 文件的命令行工具,它可以帮助确保这些文件满足特定的要求和标准,这对于驱动程序开发和测试非常重要。通过不同的选项,用户可以根据需要调整验证过程的行为,并获得有关 INF 文件结构和内容的详细反馈。


InfVerif.exe 命令的参数表格,增加了每个参数的示例及应用场景,帮助更好地理解如何使用这些参数:

参数 说明 示例 应用场景
InfVerif.exe 执行 InfVerif 工具,用于验证 Windows INF 文件的有效性。 InfVerif.exe 验证指定的 INF 文件,确保其格式和内容有效。
/v 启用详细输出模式,提供更多调试信息。 InfVerif.exe /v 当需要深入了解验证过程中的每个步骤时使用,如调试 INF 文件验证失败时。
/w 忽略警告信息,仅报告错误。 InfVerif.exe /w 用于只关心错误信息,而不希望看到警告时,减少输出内容。
/u 仅验证 INF 文件中的更新部分。 InfVerif.exe /u myfile.inf 在更新驱动程序或配置文件时,只验证文件中新增或更新的部分。
/k 对 INF 文件执行完整验证,包括所有配置和文件。 InfVerif.exe /k myfile.inf 完整验证整个 INF 文件,包括所有配置项和文件路径,确保其完全有效。
/info 显示 INF 文件的详细信息,包括描述、安装路径等。 InfVerif.exe /info myfile.inf 当需要查看 INF 文件的详细信息时使用,如检查文件的描述或签名。
/stampinf 显示 INF 文件的时间戳信息。 InfVerif.exe /stampinf myfile.inf 用于查看 INF 文件的签署时间,检查文件是否过时或被篡改。
/l <路径> 将日志输出保存到指定路径。 InfVerif.exe /l C:\logs\inf_verif_log.txt myfile.inf 将验证过程的详细日志保存到指定文件,方便后续查看和审计。
/osver TargetOSVersion 指定目标操作系统版本,以确保验证与特定操作系统版本兼容。 InfVerif.exe /osver 10.0.18363 myfile.inf 确保 INF 文件与指定的操作系统版本兼容,常用于为特定版本的操作系统提供驱动。
/product <ias 文件> 指定与产品关联的 IAS 文件,用于验证 INF 文件与产品的兼容性。 InfVerif.exe /product product.ias myfile.inf 确保 INF 文件与指定产品(通过 IAS 文件定义)的兼容性。
<文件列表> 要验证的一个或多个 INF 文件的路径。 InfVerif.exe myfile1.inf myfile2.inf 批量验证多个 INF 文件,适用于同时检查多个驱动程序或配置文件。

进一步说明:

  1. /v

    • 示例InfVerif.exe /v myfile.inf
    • 应用场景:在进行详细故障排查时,启用详细输出以获取更多的调试信息,帮助分析验证失败的原因。
  2. /w

    • 示例InfVerif.exe /w myfile.inf
    • 应用场景:当只关心严重错误(例如格式不正确或缺少必要的文件)时,使用此选项可以忽略所有警告信息,从而简化输出。
  3. /u

    • 示例InfVerif.exe /u myfile.inf
    • 应用场景:当更新某个驱动程序时,只验证更新部分,避免重复验证文件中的所有内容,节省时间。
  4. /k

    • 示例InfVerif.exe /k myfile.inf
    • 应用场景:适用于全面验证 INF 文件,确保整个文件的正确性,特别是在首次创建或修改文件时。
  5. /info

    • 示例InfVerif.exe /info myfile.inf
    • 应用场景:需要查看 INF 文件的详细信息,如文件描述、支持的设备列表等,常用于对文件的完整性检查。
  6. /stampinf

    • 示例InfVerif.exe /stampinf myfile.inf
    • 应用场景:在检查文件的安全性时,查看文件的时间戳,判断文件是否在预期时间内更新或签署。
  7. /l <路径>

    • 示例InfVerif.exe /l C:\logs\inf_verif_log.txt myfile.inf
    • 应用场景:适用于需要记录验证过程的场景,方便后续审计或查看日志文件。
  8. /osver TargetOSVersion

    • 示例InfVerif.exe /osver 10.0.18363 myfile.inf
    • 应用场景:在开发或更新驱动程序时,确保 INF 文件与指定的操作系统版本兼容,避免版本不一致的问题。
  9. /product <ias 文件>

    • 示例InfVerif.exe /product product.ias myfile.inf
    • 应用场景:当需要确保 INF 文件与某个特定产品(如硬件设备或软件)的兼容性时,指定 IAS 文件进行验证。
  10. <文件列表>

    • 示例InfVerif.exe myfile1.inf myfile2.inf
    • 应用场景:批量验证多个 INF 文件,适用于大规模的驱动程序或配置文件验证场景。

通过这些参数,InfVerif.exe 工具可以根据不同的需求进行灵活的 INF 文件验证,既可以针对单个文件进行详细检查,也可以批量处理多个文件,并且可以根据需要调整输出信息的详细程度。


对于初学者来说,使用 InfVerif.exe 工具时,可以通过一些简单的命令来验证 INF 文件的基本有效性。下面是一些适合初级用户的常见命令示例。

1. 验证单个 INF 文件

这个命令用于验证一个 INF 文件是否有效。最基础的命令形式如下:

bashCopy Code
InfVerif.exe myfile.inf
  • 说明:这将对 myfile.inf 文件进行基本的有效性检查。如果文件格式正确,工具会提示验证成功;如果有错误,工具会显示错误信息,帮助你定位问题。

2. 启用详细输出

如果你想要更多的调试信息,可以加上 /v 参数,开启详细模式,查看检查过程中的每一步。

bashCopy Code
InfVerif.exe /v myfile.inf
  • 说明:启用详细输出后,工具会显示更多调试信息,有助于排查验证失败的具体原因。

3. 忽略警告,只显示错误

如果你不关心警告信息,只想查看错误,使用 /w 参数来忽略警告,只报告错误信息。

bashCopy Code
InfVerif.exe /w myfile.inf
  • 说明:当你只想查看严重错误而忽略警告时,使用这个命令,输出结果会更加简洁。

4. 验证多个 INF 文件

如果你有多个 INF 文件需要验证,可以一次性验证多个文件:

bashCopy Code
InfVerif.exe myfile1.inf myfile2.inf
  • 说明:这个命令会同时验证 myfile1.inf 和 myfile2.inf 两个文件。

5. 将日志输出到文件

如果你希望将验证过程的输出保存到日志文件中,使用 /l 参数指定日志文件路径:

bashCopy Code
InfVerif.exe /l C:\logs\inf_verif_log.txt myfile.inf
  • 说明:这个命令会将验证过程中的所有输出(包括错误和信息)保存到 C:\logs\inf_verif_log.txt 文件中,方便以后查看和分析。

6. 验证 INF 文件的详细信息

如果你只想查看一个 INF 文件的详细信息(如描述、版本、签名等),可以使用 /info 参数:

bashCopy Code
InfVerif.exe /info myfile.inf
  • 说明:这个命令会显示 INF 文件的详细信息,而不是进行完整的验证,帮助你了解文件的基本内容。

对于初学者来说,最常见的命令就是验证一个 INF 文件的基本有效性,或者使用详细模式查看更多调试信息。这些基础命令可以帮助你开始使用 InfVerif.exe 工具,逐步了解和解决 INF 文件中的潜在问题。


在中级用户使用 InfVerif.exe 时,除了基础命令外,通常会涉及更多的参数和细节,能够帮助用户更精确地验证和排查 INF 文件的问题。以下是一些适合中级用户的命令示例,带有更多自定义和高级选项:

1. 验证 INF 文件并检查签名

这个命令可以验证 INF 文件的有效性,并检查文件的数字签名(如果有的话)。

bashCopy Code
InfVerif.exe /s myfile.inf
  • 说明: /s 参数用来检查 INF 文件的数字签名。如果 INF 文件包含签名,工具会验证签名的有效性,并报告任何签名相关的问题。

2. 验证 INF 文件的所有属性

如果你想要验证 INF 文件的所有属性,包括依赖的文件和安装信息,可以使用 /a 参数:

bashCopy Code
InfVerif.exe /a myfile.inf
  • 说明: /a 参数会检查 INF 文件中的所有条目,包括安装包、依赖文件、设备ID等信息。这对于全面检查 INF 文件是否符合要求非常有用。

3. 指定特定的错误级别

有时你只关心某些类型的错误,如致命错误(Error Level 1)或警告(Warning Level 2)。你可以使用 /e 参数来指定错误级别。

bashCopy Code
InfVerif.exe /e 1 myfile.inf
  • 说明:这个命令会指定仅显示错误级别为 1 的问题。级别 1 通常是致命错误,表示 INF 文件有严重的格式或结构性问题。

4. 跳过某些验证

有时候,你可能不想验证某些特定的部分,比如文件路径或版本兼容性。使用 /skip 参数可以跳过特定的验证检查。

bashCopy Code
InfVerif.exe /skip files myfile.inf
  • 说明:这个命令会跳过对文件路径和文件依赖关系的检查,只验证 INF 文件的其他内容。你可以用类似 /skip version 来跳过版本兼容性检查,或者用其他检查项替代。

5. 验证多个 INF 文件并输出详细日志

如果需要验证多个 INF 文件并记录详细的日志输出,使用以下命令:

bashCopy Code
InfVerif.exe /v /l C:\logs\inf_verif_log.txt myfile1.inf myfile2.inf myfile3.inf
  • 说明:使用 /v 启用详细模式,显示详细的验证信息,/l 参数会将日志保存到指定的文件。这个命令会同时验证 myfile1.infmyfile2.inf 和 myfile3.inf 三个文件,并将日志保存到 C:\logs\inf_verif_log.txt

6. 将输出格式化为 XML 或 JSON

为了便于自动化处理和与其他工具集成,可以将输出格式化为 XML 或 JSON 格式:

bashCopy Code
InfVerif.exe /xml myfile.inf
  • 说明:这个命令会将 INF 文件的验证结果以 XML 格式输出,便于其他系统或脚本解析。你也可以使用 /json 来生成 JSON 格式的输出。

7. 指定验证的INF文件目录

如果你有一个目录包含多个 INF 文件,且希望批量验证该目录下的所有 INF 文件,可以指定目录:

bashCopy Code
InfVerif.exe /dir C:\path\to\inf\files\
  • 说明:这个命令会验证指定目录下的所有 INF 文件,而不需要手动列出每个文件。对于大规模的 INF 文件验证工作非常有效。

8. 查看 INF 文件的依赖关系

如果你希望查看 INF 文件中列出的所有依赖关系(如驱动程序、系统文件等),可以使用以下命令:

bashCopy Code
InfVerif.exe /dep myfile.inf
  • 说明: /dep 参数会显示 INF 文件中的所有依赖关系,帮助你了解文件中涉及的其他组件和依赖。

9. 检查 INF 文件是否符合 Windows 驱动程序规范

如果你希望验证 INF 文件是否符合 Microsoft 的驱动程序规范,可以使用以下命令:

bashCopy Code
InfVerif.exe /winver myfile.inf
  • 说明:此命令会检查 INF 文件是否符合 Windows 驱动程序的规范,并报告不符合要求的地方。对于开发 Windows 驱动程序的人员来说,这是一个非常实用的功能。

10. 指定验证时忽略某些类型的错误

有时候,你可能不想关注某些类型的错误或警告。例如,忽略文件未找到错误,可以使用 /ignore 参数:

bashCopy Code
InfVerif.exe /ignore missing_files myfile.inf
  • 说明:这个命令会忽略文件未找到的错误,并继续验证其他部分。你可以根据需要选择忽略其他类型的错误,如版本冲突、设备ID不匹配等。

这些中级命令能帮助你更高效地管理 INF 文件验证,特别是当你需要批量验证文件、排查复杂问题、或与自动化工具结合时。使用这些命令,你能够深入地检查 INF 文件的各种细节,从而更好地处理 INF 文件中的潜在问题。


对于高级用户来说,InfVerif.exe 提供了更加精细化的命令选项来满足复杂的验证需求。以下是一些高级示例,包含了多种参数组合,帮助用户深入分析和排查 INF 文件的问题。

1. 批量验证多个文件并生成详细日志报告

如果你有多个 INF 文件需要验证,并且需要生成详细的日志报告,可以使用以下命令:

bashCopy Code
InfVerif.exe /v /l C:\logs\inf_verification_log.txt /dir C:\path\to\inf\files\
  • 说明
    • /v:启用详细模式,输出所有详细的验证信息。
    • /l:将验证结果记录到指定的日志文件 C:\logs\inf_verification_log.txt
    • /dir:指定包含多个 INF 文件的目录进行批量验证。

这个命令适用于需要对大量 INF 文件进行验证并保存详细日志的场景,尤其对于大规模的驱动程序包验证非常有用。


2. 验证 INF 文件并忽略指定的验证项

在某些情况下,你可能希望忽略特定类型的错误或警告。例如,如果你不关心文件路径的存在或特定的版本兼容性问题,可以使用 /ignore 参数。

bashCopy Code
InfVerif.exe /ignore missing_files /ignore version_conflict /v myfile.inf
  • 说明
    • /ignore missing_files:忽略文件丢失的错误,不检查 INF 文件中列出的文件是否存在。
    • /ignore version_conflict:忽略版本冲突错误,允许验证不完全符合版本要求的驱动程序。
    • /v:启用详细模式,显示所有的验证信息。

这个命令适用于你希望跳过某些特定的验证检查,尤其是在开发环境中,或者当你知道某些问题并决定忽略它们时。


3. 检查 INF 文件的安全性与签名,并生成 XML 格式的报告

为了确保 INF 文件的安全性和签名,使用以下命令可以同时检查文件的签名,并以 XML 格式导出结果:

bashCopy Code
InfVerif.exe /s /xml /l C:\logs\inf_verif_signature_report.xml myfile.inf
  • 说明
    • /s:验证 INF 文件的签名,确保文件没有被篡改并且符合安全要求。
    • /xml:将验证结果以 XML 格式导出,适合与其他工具进行进一步处理或分析。
    • /l:将日志记录到指定的文件 C:\logs\inf_verif_signature_report.xml

这种命令特别适合于需要审查 INF 文件安全性的场合,尤其是当文件来源不明时。


4. 执行 INF 文件的依赖关系验证

如果需要深入分析 INF 文件与其他组件之间的依赖关系,可以使用 /dep 参数来输出依赖信息。

bashCopy Code
InfVerif.exe /dep /v /l C:\logs\inf_dependency_report.txt myfile.inf
  • 说明
    • /dep:检查并列出 INF 文件中包含的所有依赖关系。
    • /v:启用详细模式,显示每个依赖的详细信息。
    • /l:将输出保存到日志文件 C:\logs\inf_dependency_report.txt

此命令对于开发者调试驱动程序依赖问题非常有帮助,尤其是当多个驱动程序或组件之间存在复杂关系时。


5. 验证并测试 INF 文件的 Windows 驱动程序规范兼容性

对于驱动程序开发者来说,验证 INF 文件是否符合 Microsoft 的规范是非常重要的。使用以下命令可以确保 INF 文件符合 Windows 驱动程序的要求。

bashCopy Code
InfVerif.exe /winver /l C:\logs\inf_winver_compliance_log.txt myfile.inf
  • 说明
    • /winver:验证 INF 文件是否符合 Windows 驱动程序的规范。
    • /l:将符合规范的检查结果记录到日志文件 C:\logs\inf_winver_compliance_log.txt

这个命令有助于确保你的驱动程序和 INF 文件符合 Microsoft 的官方规范,减少驱动程序发布时的兼容性问题。


6. 使用自定义检查项进行验证

如果你有特定的验证需求,可以通过自定义的规则进行检查。例如,验证某些设备 ID 或驱动程序版本要求。

bashCopy Code
InfVerif.exe /check device_id="PCI\VEN_1234&DEV_5678" /check version="1.0.0.1" /v myfile.inf
  • 说明
    • /check device_id="PCI\VEN_1234&DEV_5678":验证 INF 文件中是否包含指定的设备 ID。
    • /check version="1.0.0.1":检查 INF 文件中的版本号是否为 1.0.0.1
    • /v:启用详细模式,输出所有详细的验证信息。

此命令适用于那些需要根据特定硬件设备或驱动程序版本进行验证的场景。


7. 多种格式的输出

为了方便与其他系统集成或进行进一步分析,可以将输出格式化为 JSON 或 XML,以便机器可读。

bashCopy Code
InfVerif.exe /json /l C:\logs\inf_verification_output.json myfile.inf
  • 说明
    • /json:将输出格式化为 JSON 格式,便于其他系统或脚本进一步处理。
    • /l:将验证结果记录到 C:\logs\inf_verification_output.json 文件中。

使用此命令,你可以将验证结果以 JSON 格式存储,这对于自动化处理非常有帮助。


8. 验证多个 INF 文件并忽略特定错误类型

有时,你可能需要验证多个 INF 文件,并忽略某些类型的错误,如警告或特定的缺失文件错误。以下命令将帮助你批量处理 INF 文件并跳过某些问题。

bashCopy Code
InfVerif.exe /ignore missing_files /ignore version_conflict /v /dir C:\path\to\inf\files\
  • 说明
    • /ignore missing_files:忽略文件丢失错误。
    • /ignore version_conflict:忽略版本冲突问题。
    • /v:启用详细模式。
    • /dir:批量验证指定目录下的所有 INF 文件。

这个命令特别适合于你已经知道某些问题并决定忽略它们的情况,尤其是在开发和调试过程中。

这些高级命令和选项可以帮助你更精细地控制 INF 文件验证过程,支持批量操作、定制检查、以及详细的日志记录。这些命令适用于需要复杂验证、符合 Microsoft 规范、或者集成到自动化流程中的场景。通过灵活使用 InfVerif.exe 的高级功能,你可以提高 INF 文件验证的效率与准确性。


一些 InfVerif.exe 命令的专家级示例,这些示例提供了高级功能和复杂配置选项,以便对 INF 文件进行精细化和全面的验证。适用于开发者和系统管理员在高负载和复杂环境中处理大量 INF 文件和驱动程序。

1. 批量验证多个 INF 文件,并筛选特定错误类型

在进行大规模的驱动程序验证时,可以批量检查多个 INF 文件,并只显示特定类型的错误,忽略其他无关问题。

bashCopy Code
InfVerif.exe /dir C:\drivers\inf\ /ignore missing_files /check file_integrity /v /l C:\logs\inf_validation_report.txt
  • 解释
    • /dir C:\drivers\inf\:指定包含 INF 文件的目录进行批量验证。
    • /ignore missing_files:忽略缺失文件错误,避免因文件丢失导致的验证失败。
    • /check file_integrity:强制检查文件的完整性,确保文件没有损坏或篡改。
    • /v:启用详细模式,显示所有验证过程和结果。
    • /l C:\logs\inf_validation_report.txt:将结果日志记录到 C:\logs\inf_validation_report.txt 文件。

适用场景:当你需要验证大量驱动程序文件并忽略某些常见的、非关键的错误时,非常适合。


2. 验证 INF 文件与特定硬件设备兼容性

如果你要验证某个 INF 文件是否支持特定的硬件设备 ID,可以使用以下命令。

bashCopy Code
InfVerif.exe /check device_id="PCI\VEN_8086&DEV_1C3A" /v /l C:\logs\device_verification_log.txt C:\drivers\driver.inf
  • 解释
    • /check device_id="PCI\VEN_8086&DEV_1C3A":检查 INF 文件是否包含指定的设备 ID(此示例中为 Intel 的 PCI 设备)。
    • /v:启用详细模式,显示所有验证信息。
    • /l C:\logs\device_verification_log.txt:将结果记录到指定的日志文件中。

适用场景:适合在验证特定设备驱动程序时,确保其与硬件设备的兼容性。


3. 验证 INF 文件的安全性和签名,并输出详细的 XML 报告

对于高度关注驱动程序安全性的开发者,可以使用以下命令验证 INF 文件的签名和完整性,并将结果输出为 XML 格式,方便后续分析。

bashCopy Code
InfVerif.exe /s /xml /l C:\logs\inf_signature_check_report.xml /check signature myfile.inf
  • 解释
    • /s:启用签名验证,确保 INF 文件签名合法且未被篡改。
    • /xml:输出结果为 XML 格式,便于机器处理和进一步分析。
    • /l C:\logs\inf_signature_check_report.xml:将签名验证的日志保存到指定路径。
    • /check signature:执行签名的详细检查。

适用场景:适用于需要确保驱动程序未被篡改,并符合安全标准的环境,尤其是部署生产系统时。


4. 强制检查 INF 文件的 Windows 驱动程序规范符合性

在发布驱动程序之前,确保其符合 Windows 驱动程序规范是至关重要的。此命令帮助检查 INF 文件的规范符合性。

bashCopy Code
InfVerif.exe /winver /check signature /l C:\logs\inf_compliance_check_report.txt myfile.inf
  • 解释
    • /winver:验证 INF 文件是否符合 Windows 驱动程序规范。
    • /check signature:同时验证 INF 文件的签名是否合法。
    • /l C:\logs\inf_compliance_check_report.txt:将结果记录到指定的日志文件。

适用场景:此命令适用于在驱动程序发布之前,确保其符合 Microsoft 官方要求的环境。


5. 执行 INF 文件依赖关系分析,输出详细的 XML 格式报告

如果你的驱动程序或 INF 文件依赖于其他驱动或组件,可以使用此命令分析这些依赖关系。

bashCopy Code
InfVerif.exe /dep /xml /l C:\logs\inf_dependency_analysis_report.xml C:\drivers\mydriver.inf
  • 解释
    • /dep:分析并列出 INF 文件中所有依赖的驱动程序和组件。
    • /xml:将依赖关系分析结果输出为 XML 格式。
    • /l C:\logs\inf_dependency_analysis_report.xml:将分析报告记录到指定路径。

适用场景:适用于复杂的驱动程序包,其中包含多个相互依赖的驱动组件。


6. 根据设备类别和版本验证 INF 文件兼容性

某些 INF 文件只适用于特定类别的设备或特定版本的 Windows 系统。你可以通过指定设备类别或版本进行验证。

bashCopy Code
InfVerif.exe /check device_category="Display" /check windows_version="10.0" /v /l C:\logs\inf_version_category_report.txt C:\drivers\driver.inf
  • 解释
    • /check device_category="Display":检查 INF 文件是否适用于显示设备。
    • /check windows_version="10.0":确保驱动程序与 Windows 10 版本兼容。
    • /v:启用详细模式,显示所有验证信息。
    • /l C:\logs\inf_version_category_report.txt:将验证报告记录到日志文件中。

适用场景:适用于需要针对特定设备类别和操作系统版本进行验证的环境。


7. 执行详细的多种检查(如设备 ID、文件完整性、签名等)

如果你希望对 INF 文件执行多种详细检查,可以通过多个检查项进行联合验证。

bashCopy Code
InfVerif.exe /check device_id="PCI\VEN_1234&DEV_5678" /check file_integrity /check signature /dep /v /l C:\logs\full_verification_report.txt C:\drivers\driver.inf
  • 解释
    • /check device_id="PCI\VEN_1234&DEV_5678":检查 INF 文件是否支持指定的设备 ID。
    • /check file_integrity:验证文件的完整性,确保文件没有被损坏。
    • /check signature:验证文件的签名,确保文件没有被篡改。
    • /dep:列出所有依赖关系。
    • /v:启用详细模式,显示每个检查项的详细信息。
    • /l C:\logs\full_verification_report.txt:将所有验证结果记录到日志文件中。

适用场景:适用于需要进行全面和综合性的 INF 文件验证,确保每个方面都符合要求。


8. 自动化验证与脚本集成

在自动化测试环境中,可以将 InfVerif.exe 集成到批处理脚本中,用于自动化 INF 文件验证。以下是一个基本的批处理命令示例:

bashCopy Code
@echo off
for %%F in (C:\drivers\*.inf) do (
    InfVerif.exe /v /check device_id="PCI\VEN_8086&DEV_1C3A" /check signature /l C:\logs\%%~nF_report.txt %%F
)
  • 解释
    • for %%F in (C:\drivers\*.inf):遍历指定目录下的所有 INF 文件。
    • InfVerif.exe:对每个 INF 文件执行验证。
    • /l C:\logs\%%~nF_report.txt:将每个文件的验证报告保存到相应的日志文件中。

适用场景:此命令适用于大规模自动化验证,可以处理多个 INF 文件并生成个性化报告。

这些专家级的 InfVerif.exe 示例展示了如何在复杂的环境中使用高级功能,进行批量验证、依赖关系分析、安全性检查以及与其他系统集成。无论是在开发、自动化测试还是生产环境中,这些命令都可以帮助你全面验证 INF 文件,确保其质量和兼容性。


InfVerif.exe 是一个功能强大的工具,适用于驱动程序和 INF 文件的验证。以下是一些顶级示例,涵盖了最复杂和最强大的功能,适用于需要深度检查和验证的场景。这些命令将帮助开发者和系统管理员处理大规模驱动程序验证、高级兼容性检查、安全性分析等任务。

1. 全面批量验证所有驱动程序文件,并生成详细日志

在生产环境中,通常需要验证多个驱动程序文件的正确性和兼容性,并生成详细的报告。以下命令可以批量验证多个 INF 文件,并将结果保存为一个详细的日志文件:

bashCopy Code
InfVerif.exe /dir C:\drivers\inf\ /check all /check signature /check file_integrity /check device_id="PCI\VEN_8086&DEV_1C3A" /v /xml /l C:\logs\full_verification_report.xml
  • 解释
    • /dir C:\drivers\inf\:指定要验证的目录,其中包含多个 INF 文件。
    • /check all:对所有相关的检查进行验证,包括设备 ID、文件完整性、签名等。
    • /check signature:验证 INF 文件的数字签名,确保文件未被篡改。
    • /check file_integrity:检查文件完整性,确保文件没有损坏或丢失。
    • /check device_id="PCI\VEN_8086&DEV_1C3A":检查 INF 文件是否支持特定的设备 ID。
    • /v:启用详细模式,显示所有验证过程和结果。
    • /xml:将结果以 XML 格式输出,方便后续的机器解析。
    • /l C:\logs\full_verification_report.xml:将验证结果保存到指定的日志文件。

适用场景:适合批量验证大量驱动程序文件,并生成详细的 XML 格式报告。


2. 验证特定设备类别和 Windows 版本的兼容性

如果你需要确保驱动程序与特定设备类别和操作系统版本兼容,可以使用以下命令:

bashCopy Code
InfVerif.exe /check device_category="Display" /check windows_version="10.0" /check signature /check file_integrity /v /l C:\logs\device_compatibility_report.txt C:\drivers\driver.inf
  • 解释
    • /check device_category="Display":检查 INF 文件是否适用于显示设备。
    • /check windows_version="10.0":确保 INF 文件兼容 Windows 10 操作系统。
    • /check signature:验证 INF 文件的签名。
    • /check file_integrity:验证文件的完整性。
    • /v:启用详细模式,输出详细验证信息。
    • /l C:\logs\device_compatibility_report.txt:将验证结果记录到日志文件中。

适用场景:适用于确保驱动程序与特定操作系统版本和设备类别兼容的情况。


3. 安全性验证和驱动程序签名分析

如果你需要对驱动程序的安全性进行深入分析,确保驱动程序未被篡改且符合安全标准,可以使用以下命令:

bashCopy Code
InfVerif.exe /s /check signature /check file_integrity /xml /l C:\logs\security_check_report.xml C:\drivers\driver.inf
  • 解释
    • /s:强制执行安全性检查,确保 INF 文件未被篡改。
    • /check signature:验证驱动程序文件的数字签名。
    • /check file_integrity:检查文件完整性。
    • /xml:将验证结果以 XML 格式输出。
    • /l C:\logs\security_check_report.xml:将安全性验证报告保存到指定路径。

适用场景:适用于发布驱动程序时,确保驱动程序未被恶意修改,且符合安全标准。


4. 多重依赖关系和设备支持分析

在复杂的驱动程序包中,可能涉及多个依赖项。以下命令可以列出 INF 文件的所有依赖关系,并验证这些依赖项是否正常:

bashCopy Code
InfVerif.exe /dep /check device_id="PCI\VEN_1234&DEV_5678" /check signature /check file_integrity /v /l C:\logs\dependency_analysis_report.xml C:\drivers\driver.inf
  • 解释
    • /dep:列出 INF 文件所依赖的所有其他驱动程序或组件。
    • /check device_id="PCI\VEN_1234&DEV_5678":验证 INF 文件是否支持特定设备 ID。
    • /check signature:验证文件的签名。
    • /check file_integrity:验证文件完整性。
    • /v:启用详细模式,显示验证过程中的详细信息。
    • /l C:\logs\dependency_analysis_report.xml:将依赖关系分析结果保存为 XML 格式日志文件。

适用场景:适用于验证和分析驱动程序文件的依赖关系,确保所有依赖项都已正确配置和支持。


5. 综合的多级检查与自动化脚本集成

对于需要自动化处理和批量验证多个驱动程序文件的情况,可以将 InfVerif.exe 集成到批处理脚本中,并执行多级检查:

bashCopy Code
@echo off
for %%F in (C:\drivers\*.inf) do (
    InfVerif.exe /check all /check signature /check file_integrity /check device_id="PCI\VEN_8086&DEV_1C3A" /dep /v /xml /l C:\logs\%%~nF_report.xml %%F
)
  • 解释
    • for %%F in (C:\drivers\*.inf):遍历指定目录中的所有 INF 文件。
    • InfVerif.exe:对每个 INF 文件执行全面的验证,包括签名、文件完整性、设备 ID 等。
    • /dep:列出所有依赖关系。
    • /v:启用详细模式。
    • /xml:将结果输出为 XML 格式。
    • /l C:\logs\%%~nF_report.xml:将每个文件的验证结果记录到不同的 XML 格式日志文件。

适用场景:适用于批量验证多个 INF 文件,并自动生成个性化的报告。


6. 详细检查 INF 文件的 Windows 驱动程序规范符合性

此命令将确保 INF 文件符合 Windows 驱动程序规范,并执行所有相关检查:

bashCopy Code
InfVerif.exe /winver /check signature /check file_integrity /check device_id="PCI\VEN_1234&DEV_5678" /v /l C:\logs\driver_compliance_report.txt C:\drivers\driver.inf
  • 解释
    • /winver:验证 INF 文件是否符合 Windows 驱动程序规范。
    • /check signature:验证文件签名。
    • /check file_integrity:验证文件完整性。
    • /check device_id="PCI\VEN_1234&DEV_5678":检查驱动程序是否支持指定设备 ID。
    • /v:启用详细模式。
    • /l C:\logs\driver_compliance_report.txt:将符合性验证报告保存为文本文件。

适用场景:适用于需要确保驱动程序符合 Microsoft Windows 驱动程序要求的情况。

这些顶级 InfVerif.exe 示例展示了如何使用复杂的命令组合来执行全面的验证、依赖关系分析、安全性检查、设备兼容性验证等高级任务。通过结合多种检查选项,你可以确保驱动程序文件在不同的操作系统版本、设备和硬件配置中均能正常工作,同时确保它们符合安全性和合规性要求。


 

posted @ 2024-12-11 16:49  suv789  阅读(181)  评论(0)    收藏  举报