DDI 合规性规则

本部分列出并介绍了可用于验证 Windows 驱动程序模型(WDM)、内核模式驱动程序框架(KMDF)、音频(PortCls)、AVStream(KS)、NDIS 和 Storport 驱动程序的 Windows 设备驱动程序接口(DDI)符合性规则。 DDI 符合性规则定义了驱动程序与操作系统内核接口之间正确交互的要求。

音频驱动程序的规则
AVStream 驱动程序的规则
WDM 驱动程序的规则
KMDF 驱动程序的规则
NDIS 驱动程序的规则
Storport 驱动程序的规则

重要

Windows 硬件兼容性计划要求在我们的客户端和服务器操作系统上使用 CodeQL 进行静态工具徽标 (STL) 测试。 我们将继续在旧版产品上支持 SDV 和 CA。 我们强烈建议合作伙伴查看 CodeQL 对静态工具徽标测试的要求。 有关使用 CodeQL 的详细信息,请参阅 CodeQL 和静态工具徽标测试

驱动程序验证工具

可以使用代码分析工具、静态驱动程序验证器和驱动程序验证程序测试驱动程序,以符合 DDI 使用规则。 静态驱动程序验证程序(SDV)对驱动程序源代码执行静态分析,因此可以在开发周期的早期使用 SDV。 驱动程序验证程序与操作系统集成,因此,在生成、部署和安装驱动程序后,可以在运行时测试驱动程序。

静态驱动程序验证程序使用驱动程序源代码创建驱动程序和操作系统的模型。 在此模型中,SDV 将驱动程序置于恶意环境中,并通过驱动程序系统地测试代码路径,方法是查找违反一组正式的驱动程序符合性规则(静态驱动程序验证程序规则)。

从 Windows 8 开始,可以通过启用 DDI 符合性检查,将驱动程序验证程序配置为对已安装的驱动程序运行一些相同的符合性检查。

重要

不再支持 SDV,并且 Windows 24H2 WDK 或 EWDK 版本中不提供 SDV。 它在版本 26017 之前的 WDK 中不可用,并且不包括在 Windows 24H2 RTM WDK 中。 通过从 下载 Windows 驱动程序工具包(WDK)下载 Windows 11 版本 22H2 EWDK(2023 年 10 月 24 日发布)和 Visual Studio 生成工具 17.1.5,仍可使用 SDV。 建议仅使用企业 WDK 运行 SDV。 不建议将旧版标准 WDK 与 Visual Studio 的最新版本结合使用,因为这可能会导致分析失败。
今后,CodeQL 将成为驱动程序的主要静态分析工具。 CodeQL 提供了一种功能强大的查询语言,可将代码视为要查询的数据库,使编写特定行为、模式等查询变得简单。 有关使用 CodeQL 的详细信息,请参阅 CodeQL 和静态工具徽标测试

驱动程序验证程序

静态驱动程序验证程序