靜態驅動程式驗證器

靜態驅動程式驗證器 (也稱為 「StaticDV」 或 「SDV」) 是一種靜態驗證工具,可有系統地分析 Windows 核心模式驅動程式的原始程式碼。 SDV 是一種編譯時間工具,能夠探索驅動程式中的瑕疵和設計問題。 根據一組介面規則和作業系統的模型,SDV 會判斷驅動程式是否正確地與 Windows 作業系統核心互動。

安裝靜態驅動程式驗證器

靜態驅動程式驗證程式可在完整 WDK 體驗和獨立企業 WDK 中,作為 Windows 驅動程式套件 (WDK) 的一部分。 此外,需要 C++ 可轉散發套件 Packages for Visual Studio,SDV 才能執行。 請參閱下列項目:

針對 WDK 中適用于 Windows 10 1809 版或更早版本的 SDV,應該安裝適用于Visual Studio 2012 的 C++ 可轉散發套件 套件,而不是 2017套件。

Visual Studio 整合

靜態驅動程式驗證器已整合到 Visual Studio 中。 您可以在 Visual Studio 驅動程式專案上執行靜態分析。 您可以從 Visual Studio 中的 [ 驅動程式 ] 功能表啟動、設定及控制靜態驅動程式驗證程式。

靜態驅動程式驗證器檔

在 Windows 驅動程式程式碼中尋找 Bug

Microsoft 會使用 SDV 來測試 Microsoft Windows 作業系統隨附的核心模式驅動程式,以及測試 WDK 中的範例驅動程式。 使用特定驅動程式模型的 DDI 合規性規則,SDV 可以驗證正確的驅動程式行為。 例如,SDV 可以驗證驅動程式:

  • 在正確的 IRQL 呼叫函式
  • 以正確的順序取得和釋放鎖定
  • 正確使用處理 I/O 要求封包的函式, (IRP)

SDV 會透過驅動程式程式碼檢查所有可能的路徑。 其設計目的是要找出不太可能在徹底測試中遇到嚴重錯誤的模糊路徑。

其他資源

如需 SDV 可以驗證之驅動程式的特定資訊,請參閱 支援的驅動程式

如需使用靜態驅動程式驗證器的詳細資訊和秘訣,請參閱下列各項: