驱动 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文件> ...
常用命令行选项
选项 | 说明 |
| Windows 驱动程序验证模式。验证 INF 是否适用于 Windows 驱动程序包。 |
| KMDF 驱动程序验证模式。检查内核模式驱动程序 INF 文件的特定要求。 |
| UMDF 驱动程序验证模式。检查用户模式驱动程序 INF 文件的特定要求。 |
| 详细模式。输出更详细的信息,包括每个检查步骤的结果。 |
| 显示帮助信息,列出所有可用的命令行选项。 |
| 将验证结果输出到日志文件。示例: |
| 显示 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)规则:验证文件复制、服务安装等部署相关指令
常见验证错误及修复
错误消息 | 说明与修复方法 |
| 缺少必需的 INF 节。请根据驱动程序类型添加对应的节(如 [Version]、[Manufacturer] 等)。 |
| 使用了当前节不允许的指令。检查该节支持的指令列表。 |
| 未声明目标架构。在 [Manufacturer] 节中添加 NTAMD64、NTARM64 等修饰。 |
| 缺少硬件 ID。在 [Manufacturer] 节中确保指定了正确的硬件 ID。 |
| INF 中未定义驱动程序服务。如果是纯软件枚举,可以忽略;否则需要添加服务定义。 |
提示:使用 InfVerif 配合 /v 和 /l 选项,可以生成详细的验证报告,便于逐项排查问题。
本文内容来自微软官方文档