靜態驅動程式驗證器
靜態驅動程式驗證器(也稱為 “StaticDV” 或 “SDV”) 是靜態驗證工具,可有系統地分析 Windows 核心模式驅動程式的原始程式碼。 SDV 是一種編譯時間工具,能夠探索驅動程式中的缺陷和設計問題。 根據一組介面規則和操作系統的模型,SDV 會判斷驅動程式是否正確地與 Windows 操作系統核心互動。
重要
Windows 硬體相容性計劃需要 CodeQL,在我們的用戶端和伺服器作業系統上進行靜態工具標誌 (STL) 測試。 我們將繼續在舊版產品上維護 SDV 和 CA 的支援。 強烈建議合作夥伴檢閱靜態工具標誌測試的程式代碼QL需求。 如需使用 CodeQL 的詳細資訊,請參閱 CodeQL 和靜態工具標誌測試。
安裝靜態驅動程式驗證程式
靜態驅動程式驗證器可在完整 WDK 體驗和獨立企業 WDK 中作為 Windows 驅動程式套件 (WDK) 的一部分使用。 此外,需要 C++ 可轉散發套件 適用於 Visual Studio 的套件,SDV 才能執行。 請參閱下列項目:
針對適用於 Windows 10 版本 1809 或更早版本的 WDK 中提供的 SDV 版本,應該安裝適用於 Visual Studio 2012 的 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 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應