靜態驅動程式驗證器
靜態驅動程式驗證器 (也稱為 「StaticDV」 或 「SDV」) 是一種靜態驗證工具,可有系統地分析 Windows 核心模式驅動程式的原始程式碼。 SDV 是一種編譯時間工具,能夠探索驅動程式中的瑕疵和設計問題。 根據一組介面規則和作業系統的模型,SDV 會判斷驅動程式是否正確地與 Windows 作業系統核心互動。
安裝靜態驅動程式驗證器
靜態驅動程式驗證程式可在完整 WDK 體驗和獨立企業 WDK 中,作為 Windows 驅動程式套件 (WDK) 的一部分。 此外,需要 C++ 可轉散發套件 Packages for Visual Studio,SDV 才能執行。 請參閱下列項目:
- Visual Studio 2019 可轉散發套件
- 適用于 Visual Studio 2017 的 C++ 可轉散發套件 套件
- 適用於 Visual Studio 2013 的 Visual C++ 可轉散發套件
針對 WDK 中適用于 Windows 10 1809 版或更早版本的 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 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應