静态驱动程序验证程序
静态驱动程序验证程序(也称为“StaticDV”或“SDV”)是一种静态验证工具,可以系统地分析 Windows 内核模式驱动程序的源代码。 SDV 是一种编译时工具,能够发现驱动程序中的缺陷和设计问题。 根据一组接口规则和操作系统模型,SDV 确定驱动程序是否与 Windows 操作系统内核正确交互。
重要
Windows 硬件兼容性计划需要 CodeQL 进行客户端和服务器操作系统上的静态工具徽标 (STL) 测试。 我们将继续在旧版产品上维护对 SDV 和 CA 的支持。 强烈建议合作伙伴查看静态工具徽标测试的 CodeQL 要求。 有关使用 CodeQL 的详细信息,请参阅 CodeQL 和静态工具徽标测试。
安装静态驱动程序验证程序
静态驱动程序验证程序在完整的 WDK 体验和独立企业 WDK 中作为 Windows 驱动程序工具包(WDK)的一部分提供。 此外,SDV 需要用于 Visual Studio 的 Visual C++ 可再发行程序包 包才能运行。 参阅以下内容:
- Visual Studio 2019 Redistribution
- 适用于 Visual Studio 2017 的Visual C++ 可再发行程序包包
- Visual C++ Redistributable Packages for Visual Studio 2013
对于适用于 Windows 10 版本 1809 或更高版本的 WDK 中提供的 SDV 版本,应安装适用于 Visual Studio 2012 的 Visual C++ 可再发行程序包 包,而不是 2017 包。
Visual Studio 集成
静态驱动程序验证程序集成到 Visual Studio 中。 可以在 Visual Studio 驱动程序项目中运行静态分析。 可以从 Visual Studio 中的 “驱动程序 ”菜单启动、配置和控制静态驱动程序验证程序。
静态驱动程序验证程序文档
- 静态驱动程序验证程序已知问题:列出静态驱动程序验证程序的最新已知问题
- 使用静态驱动程序验证程序在驱动程序中查找缺陷:告知开始在 Visual Studio 环境中分析驱动程序代码所需的内容。
- 静态驱动程序验证程序命令(MSBuild):列出用于在 Visual Studio 命令提示符窗口中运行 SDV 的 MSBuild 命令。
- 静态驱动程序验证程序简介:提供静态分析工具的概述。
- 使用静态驱动程序验证程序:提供有关使用和配置静态分析工具的详细信息。
- 静态驱动程序验证程序报告:描述显示静态代码分析的详细跟踪的查看器。
- 静态驱动程序验证程序规则:规则定义驱动程序模型与操作系统内核接口之间正确交互的要求。
- 静态驱动程序验证程序参考:提供有关函数角色类型、SDV 配置文件、错误和警告消息的参考信息。
在 Windows 驱动程序代码中查找 Bug
Microsoft 使用 SDV 测试 Microsoft Windows 操作系统随附的内核模式驱动程序,并测试 WDK 中的示例驱动程序。 通过使用特定驱动程序模型的 DDI 符合性规则,SDV 可以验证正确的驱动程序行为。 例如,SDV 可以验证驱动程序:
- 在正确的 IRQL 中调用函数
- 按正确的顺序获取和释放锁
- 正确使用处理 I/O 请求数据包的函数(IRP)
SDV 通过驱动程序代码检查所有可能的路径。 它旨在查找模糊路径中的严重错误,即使在彻底测试中也不太可能遇到这些错误。
其他资源
有关 SDV 可以验证的驱动程序的特定信息,请参阅 支持的驱动程序
有关使用静态驱动程序验证程序的详细信息和提示,请参阅以下内容:
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈