静态驱动程序验证程序

静态驱动程序 (也称为"StaticDV"或"SDV") 是一种静态验证工具,可系统地分析 Windows 内核模式驱动程序的源代码。 SDV 是一种编译时工具,能够发现驱动程序中的缺陷和设计问题。 SDV 根据一组接口规则和操作系统模型,确定驱动程序是否与Windows内核正确交互。

安装静态驱动程序验证程序

静态驱动程序验证程序作为 Windows 驱动程序工具包 (WDK) 的完整 WDK 体验和独立 WDK Enterprise的一部分提供。 此外,SDV Visual C++ 可再发行程序包运行Visual Studio所需的应用程序包。 参阅以下内容:

对于 WDK for Windows 10 版本 1809 或更早版本中可用的 SDV 版本,应安装适用于 Visual Studio 2012 的 Visual C++ 可再发行程序包 包而不是 2017 包。

Visual Studio 集成

静态驱动程序验证程序集成到Visual Studio。 可以在驱动程序项目上Visual Studio静态分析。 可以从"驱动程序"菜单中启动、配置和控制静态驱动程序验证Visual Studio。

静态驱动程序验证程序文档

在驱动程序代码中Windows Bug

Microsoft 使用 SDV 测试 Microsoft Windows 操作系统中包含的内核模式驱动程序,并测试 WDK 中的示例驱动程序。 通过使用特定驱动程序模型的 DDI 符合性规则,SDV 可以验证正确的驱动程序行为。 例如,SDV 可以验证驱动程序:

  • 在正确的 IRQL 上调用函数
  • 按正确的顺序获取和释放锁
  • 正确使用处理 IRP 和 IRP (I/O 请求)

SDV 通过驱动程序代码检查所有可能的路径。 它旨在查找模糊路径中的严重错误,即使在全面测试中也不太可能遇到这些错误。

其他资源

有关 SDV 可以验证的驱动程序的特定信息,请参阅 支持的驱动程序

有关使用静态驱动程序验证程序的信息和提示,请参阅以下内容: