驱动 INF 文件语法验证与通用检测工具详解

一、InfVerif 概述

原文: https://learn.microsoft.com/zh-cn/windows-hardware/drivers/devtest/infverif

InfVerif(INF 文件验证工具)是 Windows 驱动程序开发工具包(WDK)的一部分,用于验证驱动程序 INF 文件的语法和结构是否正确。它可以检测 INF 文件中的常见错误和潜在问题,确保驱动程序的 INF 文件符合 Windows 的要求。

主要功能

  • INF 语法验证:检查 INF 文件是否符合      Microsoft 定义的语法规则

  • 指令和节验证:验证 INF 文件中使用的指令和节是否正确

  • 兼容性检查:确保 INF 文件与目标 Windows 版本的兼容性

  • 静态分析:检测可能导致安装失败的常见错误配置

位置

InfVerif 工具位于 WDK 安装目录下:C:\Program Files (x86)\Windows Kits\10\tools\<版本号>\<架构>\

基本用法

infverif.exe /w <INF文件路径>


其中 /w 参数表示以 Windows 驱动程序验证模式运行。

注意:在所有驱动程序包提交到 Windows 硬件兼容性计划之前,必须使用 InfVerif 验证 INF 文件。未经 InfVerif 验证通过的 INF 文件会导致提交失败。


二、从命令行运行 InfVerif

原文: https://learn.microsoft.com/zh-cn/windows-hardware/drivers/devtest/running-infverif-from-the-command-line

命令行语法

infverif.exe [选项] <INF文件> ...


常用命令行选项

选项

说明

/w

Windows 驱动程序验证模式。验证 INF 是否适用于 Windows 驱动程序包。

/k

KMDF 驱动程序验证模式。检查内核模式驱动程序 INF 文件的特定要求。

/u

UMDF 驱动程序验证模式。检查用户模式驱动程序 INF 文件的特定要求。

/v

详细模式。输出更详细的信息,包括每个检查步骤的结果。

/h

显示帮助信息,列出所有可用的命令行选项。

/l

将验证结果输出到日志文件。示例:infverif.exe /w /l results.log   driver.inf

/info

显示 INF 文件的详细信息摘要。

使用示例

# 基本 Windows 驱动验证
infverif.exe /w mydriver.inf
# 详细模式 + 输出到日志
infverif.exe /w /v /l verify.log mydriver.inf
# 同时验证多个 INF 文件
infverif.exe /w driver1.inf driver2.inf driver3.inf
# KMDF 驱动验证
infverif.exe /k kmdf_driver.inf
# UMDF 驱动验证
infverif.exe /u umdf_driver.inf


退出代码

代码

含义

0

成功 — 未发现错误

1

发现警告 — INF 文件可能有问题,但不阻止使用

2

发现错误 — INF 文件存在问题,需要修复

重要:如果 InfVerif 报告错误(退出代码 2),必须在提交 WHQL 认证之前修复所有错误。警告可以酌情处理,但强烈建议也一并修复。



三、InfVerif /h 帮助参考

原文: https://learn.microsoft.com/zh-cn/windows-hardware/drivers/devtest/infverif_h

获取帮助

运行 infverif.exe /h 可以显示所有可用的命令行选项和参数说明。

完整命令行参考

Microsoft Windows Driver Kit - InfVerif
Copyright (c) Microsoft Corporation. All rights reserved.
Usage: infverif.exe [options] <INF files>
Options:
  /w          验证 Windows 驱动程序 INF 文件
  /k          验证内核模式驱动程序 (KMDF) INF 文件
  /u          验证用户模式驱动程序 (UMDF) INF 文件
  /v          详细输出模式
  /h          显示此帮助信息
  /l <file>   将输出记录到指定文件
  /info       显示 INF 摘要信息
  /rules      列出所有验证规则
  /?          显示此帮助信息


验证规则列表 (infverif /rules)

运行 infverif.exe /rules 可以查看所有内置的验证规则。这些规则涵盖:

  • 节(Section)规则:验证必要的节是否存在,节名称是否正确

  • 指令(Directive)规则:验证指令的语法和值是否正确

  • 架构(Schema)规则:验证 INF 架构是否符合      Windows 版本要求

  • 签名(Signature)规则:验证与驱动程序签名相关的配置

  • 部署(Deployment)规则:验证文件复制、服务安装等部署相关指令

常见验证错误及修复

错误消息

说明与修复方法

ERROR:   Section [xxx] not found

缺少必需的 INF 节。请根据驱动程序类型添加对应的节(如   [Version]、[Manufacturer] 等)。

ERROR:   Directive xxx not allowed

使用了当前节不允许的指令。检查该节支持的指令列表。

WARNING:   Architecture missing

未声明目标架构。在 [Manufacturer] 节中添加 NTAMD64、NTARM64 等修饰。

ERROR:   Missing hardware ID

缺少硬件 ID。在   [Manufacturer] 节中确保指定了正确的硬件 ID。

WARNING:   No driver service

INF 中未定义驱动程序服务。如果是纯软件枚举,可以忽略;否则需要添加服务定义。

提示:使用 InfVerif 配合 /v/l 选项,可以生成详细的验证报告,便于逐项排查问题。


本文内容来自微软官方文档