添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

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

准备驱动程序

  • 在运行代码分析工具之前,请使用最新的 Windows 驱动程序工具包 (WDK) 生成并链接驱动程序。
  • 为解决方案配置选择 发布 ,为解决方案平台选择 x64
  • 确定并运行所需的测试

    若要确定要认证的 Windows 版本需要哪些测试,请参阅 静态工具徽标测试

    根据需要运行以下测试。

  • 运行 CodeQL。 解决并修复发现的缺陷。 如果被视为“必须修复”的缺陷未得到纠正,则认证失败。 有关 CodeQL 和静态工具徽标测试的详细信息,请参阅 CodeQL 和静态工具徽标测试

  • 运行 静态驱动程序验证程序 。 有关创建日志文件中的信息,请参阅 为静态驱动程序验证程序创建日志文件 使用静态驱动程序验证程序查找驱动程序中的缺陷

  • 为驱动程序运行代码分析工具。 解决并修复发现的任何缺陷。 请参阅 为代码分析工具创建日志文件 如何为驱动程序运行代码分析 。 有关代码分析的更多信息,请参阅 使用代码分析工具分析应用程序质量

    创建驱动程序验证日志

  • 驱动程序 菜单中,选择 创建驱动程序验证日志
  • 确认检测到 代码分析日志 静态驱动程序验证程序日志 CodeQL 日志 文件。
  • 选择 创建
  • 驱动程序验证日志的文件扩展名为 .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

  • 从 WDK 或装载的 eWDK 中查找 dvl.exe。 它通常安装在 C:\Program Files (x86)\Windows Kits\10\Tools\dvl\dvl.exe
  • 通过传递 /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 所需的结果与任何 vcxproj 文件一起放在一个目录中。 对于要针对 Windows 客户端进行认证的驱动程序,此文件是 CodeQL SARIF 文件。 Windows Server 认证还可能包括代码分析和静态驱动程序验证程序 (SDV) 结果文件。 请查看 WHCP 要求文档,具体详细了解需要运行哪些工具来进行设备驱动程序认证。

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

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

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

  • 通过传递 /manualCreate 标志、驱动程序名称和所需的体系结构来调用 dvl.exe。 例如:

    driverArchitecture 使用以下字符串之一:

  • ARM64
  • 不要将".sys"作为 driverName 字符串的一部分。

  • 检查 DVL 以确保其正确生成。

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

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

  • 为静态驱动程序验证程序创建日志文件
  • 为代码分析工具创建日志文件
  • 硬件认证计划
  • 使用代码分析工具分析驱动程序质量
  • 如何为驱动程序运行“代码分析”
  • 使用静态驱动程序验证程序查找驱动程序中的缺陷
  • CodeQL 和静态工具徽标测试
  •