共用方式為


DDI 合規性規則

本節列出並描述可用來驗證 Windows 驅動程式模型 (WDM)、核心模式驅動程序架構 (KMDF)、音訊 (PortCls)、AVStream (KS)、NDIS 和 Storport 驅動程式的 Windows 設備驅動器介面 (DDI) 合規性規則。 DDI 合規性規則會定義驅動程式與操作系統核心介面之間適當互動的需求。

音訊驅動程序的規則
AVStream 驅動程序的規則
WDM 驅動程式的規則
KMDF 驅動程式的規則
NDIS 驅動程序的規則
Storport 驅動程序的規則

重要

Windows 硬體相容性計劃需要 CodeQL,在我們的用戶端和伺服器作業系統上進行靜態工具標誌 (STL) 測試。 我們將繼續在舊版產品上維護 SDV 和 CA 的支援。 強烈建議合作夥伴檢閱靜態工具標誌測試的程式代碼QL需求。 如需使用 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 和靜態工具標誌測試

驅動程式驗證器

靜態驅動程式驗證器