共用方式為


靜態驅動程式驗證工具簡介

靜態驅動程式驗證器 (SDV) 是在編譯時期執行的靜態驗證工具。 它會以符號方式執行原始程式碼來探索驅動程式程式代碼中的路徑,盡可能少地假設操作系統的狀態和驅動程式的初始狀態。 因此,SDV 可以在傳統測試中遺漏的路徑中練習程序代碼。

SDV 包含一組規則,可定義驅動程式與作業系統核心之間的適當互動。 在驗證期間,SDV 會檢查驅動程式程式代碼及其使用的每個適用分支,並嘗試證明驅動程式違反規則。 如果 SDV 無法證明違規,則會報告驅動程式遵守規則並通過驗證。

本節包含:

瞭解靜態驅動程式驗證器

靜態驅動程式驗證器概念

支援的驅動程式

靜態驅動程式驗證器限制

重要

不再支援 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 和靜態工具標誌測試