如何创建驱动程序验证日志

Windows 硬件认证计划要求在提交驱动程序时提供驱动程序验证日志(DVL)。 DVL 包含静态分析工具 CodeQL 的结果摘要。 DVL 不包含任何源代码信息。 在为驱动程序创建 DVL 之前,请运行 CodeQL、代码分析工具和静态驱动程序验证程序。 有关详细信息,请参阅静态工具徽标测试CodeQL 和静态工具徽标测试

重要

由于已知问题,在 Windows HLK(2026 年 5 月更新)中为 Windows 11 运行静态工具徽标测试,版本 25H2 将导致错误,指出驱动程序验证日志不符合版本要求。 请按正常流程运行 CodeQL,并使用 Windows 驱动程序工具包 (WDK) 版本 28000.1761 生成 DVL,然后应用豁免项 #320241 以解除提交阻塞。 此问题将在 Windows 11 版本 25H2 的 HLK 的下一个版本中解决。

准备驱动程序

  1. 在运行代码分析工具之前,请使用最新的 Windows 驱动程序工具包 (WDK) 生成并链接驱动程序。
  2. 在“解决方案配置”中选择 Release,在“解决方案平台”中选择 x64

确定并运行所需的测试

若要确定针对你希望获得认证的 Windows 版本需要哪些测试,请参阅 静态工具徽标测试

根据需要运行以下测试。

创建驱动程序验证日志

  1. 驱动程序菜单中,选择创建驱动程序验证日志
  2. 确认检测到代码分析日志静态驱动程序验证程序日志CodeQL 日志文件。
  3. 选择 创建

驱动程序验证日志的文件扩展名为 .DVL.XML。 日志文件会在项目文件夹中创建,例如:myDriverProject\myDriverName.DVL.XML。

SDV 对驱动程序进行彻底重建,从而删除代码分析日志。 因此,在运行 CA 之前,请务必运行 SDV。

准备好使用 Windows Hardware Lab Kit 测试驱动程序时,请将驱动程序验证日志复制到测试计算机上的 %systemdrive%\DVL 目录。 在复制新驱动程序验证日志之前,删除测试计算机上该目录中的内容。

重要

DVL 文件中的超时、空白输出及其他非成功结果可接受用于认证提交。 未成功的结果不会导致 HLK 中的静态工具测试失败。

使用 Visual Studio 命令提示符窗口

还可以从 Visual Studio 命令提示符窗口创建驱动程序验证日志。 使用随 Visual Studio 安装的 Visual Studio 本机工具命令提示符或企业版 Windows 驱动程序工具包 (WDK)。

msbuild.exe <vcxprojectfile> /target:dvl /p:Configuration="Release" /P:Platform=x64

在 msbuild 或 Visual Studio 之外创建驱动程序验证日志

Microsoft 在 Windows 驱动程序工具包 (WDK)Enterprise WDK (eWDK) 中提供了一个名为 dvl.exe 的组件,可用于通过命令行生成驱动程序验证日志 (DVL)。 从 WDK/eWDK 预览版 21342 及更高版本开始,可以从 msbuild 或 Visual Studio 上下文之外的命令行生成 DVL。

从 CodeQL sarif 文件生成 DVL

  1. 从 WDK 或装载的 eWDK 中查找 dvl.exe。 它通常安装在 C:\Program Files (x86)\Windows Kits\10\Tools\dvl\dvl.exe
  2. 通过指定 /manualCreate 标志、驱动程序名称、目标体系结构和 /sarifPath 来调用 dvl.exe。 其中 /sarifPath 表示包含 sarif 文件的文件夹路径。
"C:\Program Files (x86)\Windows Kits\10\Tools\dvl\dvl.exe" /manualCreate <driverName> <driverArchitecture> /sarifPath <pathToSarifLocation>

从 CodeQL SARIF 文件生成 DVL,或者在使用 CA 和 SDV 时生成 DVL

  1. 将创建 DVL 所需的结果与任何 vcxproj 文件一起放在一个目录中。 对于要获得 Windows 客户端认证的驱动程序,此文件即为 CodeQL SARIF 文件。 Windows Server 认证还可能包括代码分析和静态驱动程序验证程序 (SDV) 结果文件。 请查阅 WHCP 要求文档,了解设备驱动程序认证需要运行哪些工具的具体详情。

  2. 将 CodeQL SARIF 文件和代码分析 XML 文件放在目录的顶层。 将 SDV DVL.xml 文件放置在名为 sdv 的子文件夹中。

  3. 从命令行导航到包含 CodeQL SARIF 文件的顶级目录。

  4. 从 WDK 或装载的 eWDK 中查找 dvl.exe。

  5. 通过传入 /manualCreate 标志、驱动程序名称和所需的架构来调用 dvl.exe。 例如:

    为您的 driverArchitecture 使用以下字符串之一:

    • X86
    • X64
    • 手臂
    • ARM64

    注意

    不要将“.sys”包含在 driverName 字符串中。

  6. 检查 DVL,确保其已正确生成。

此用法主要用于生成带有 CodeQL 结果的 DVL,但也可用于 SDV 和 CA 结果。

发行说明

有关代码分析工具、静态驱动程序验证程序和驱动程序验证日志的最新信息,请参阅 Windows 驱动程序工具包 (WDK) 下载页面上的 WDK 发行说明。