如何建立驅動程式驗證記錄

Windows 硬體認證計畫要求提交驅動程式時必須提供驅動程式驗證記錄檔 (DVL)。 DVL 包含來自靜態分析工具(例如 CodeQL)的結果摘要。 DVL 不包含任何原始程式碼資訊。 建立驅動程式的 DVL 之前,請執行 CodeQL、程式代碼分析工具和靜態驅動程式驗證器。 如需更多資訊,請參閱 靜態工具標誌測試CodeQL 和靜態工具標誌測試

重要

由於已知問題,在 Windows 11 版本 25H2 中執行 Windows HLK(2026 年 5 月更新)中的靜態工具標誌測試時,會出現驅動程式驗證日誌不符合版本要求的錯誤。 請如常執行 CodeQL 並以 Windows 驅動程式套件 版本 28000.1761 產生 DVL,然後套用豁免 #320241 來解除封鎖提交。 此問題將在 Windows 11 的下一版本 HLK 25H2 中解決。

準備驅動程式

  1. 在執行程式代碼分析工具之前,請先使用最新的 Windows 驅動程式套件來建置並連結您的驅動程式。
  2. 針對方案組態選取 發行,並針對方案平台選取 x64

判斷並執行必要的測試

若要確定您想要取得認證的 Windows 版本需要哪些測試,請參閱 靜態工具標誌測試

視需要執行下列測試。

建立驅動程式驗證記錄

  1. 從 [ 驅動程式 ] 功能表中,選取 [ 建立驅動程序驗證記錄]。
  2. 確認已偵測到 程式碼分析記錄靜態驅動程式驗證工具記錄CodeQL 記錄 檔案。
  3. 選取 建立

驅動程式驗證記錄檔的擴展名為 。DVL.XML。 記錄檔會建立於專案資料夾中,例如 myDriverProject\myDriverName.DVL.XML。

SDV 會執行驅動程式的全新重建,這會移除程式代碼分析記錄。 因此,在執行 CA 之前,請務必先執行 SDV。

當您準備好使用 Windows 硬體實驗室套件 測試驅動程式時,請將驅動程式驗證記錄檔複製到測試電腦上的 %systemdrive%\DVL 目錄。 複製新的驅動程式驗證記錄檔之前,請先刪除測試電腦上的目錄內容。

重要

DVL 檔案中的逾時、空間不足及其他未成功的結果,可接受用於認證提交。 非成功的結果不會造成 HLK 中的靜態工具測試失敗。

使用 Visual Studio 命令提示字元視窗

您也可以從 Visual Studio 命令提示字元視窗建立驅動程式驗證記錄。 使用隨 Visual Studio 一起安裝的 Visual Studio 原生工具命令提示字元,或使用 Enterprise Windows 驅動程式套件 (EWDK)。

msbuild.exe <vcxprojectfile> /target:dvl /p:Configuration="Release" /P:Platform=x64

在 msbuild 或 Visual Studio 外部建立驅動程式驗證記錄

Microsoft 在 Windows 驅動程式套件 (WDK)Enterprise WDK (eWDK) 中提供一個名為 dvl.exe 的元件,可透過命令列用來產生驅動程式驗證記錄(DVL)。 從 WDK/eWDK 預覽版本 21342 和更新版本開始,您可以從 msbuild 或 Visual Studio 內容以外的命令行產生 DVL。

從 CodeQL sarif 檔案產生 DVL

  1. 從 WDK 或掛載的 eWDK 中找到 dvl.exe。 它通常安裝在 C:\Program Files (x86)\Windows Kits\10\Tools\dvl\dvl.exe
  2. 呼叫 dvl.exe,並傳入 /manualCreate 旗標、驅動程式名稱、所需的架構,以及 /sarifPath。 其中 /sarifPath 包含 sarif 檔案所在資料夾的路徑。
"C:\Program Files (x86)\Windows Kits\10\Tools\dvl\dvl.exe" /manualCreate <driverName> <driverArchitecture> /sarifPath <pathToSarifLocation>

從 CodeQL SARIF 檔案產生 DVL,或在使用 CA 和 SDV 時

  1. 將建立 DVL 所需的結果連同任何 vcxproj 檔案放在單一目錄中。 若要讓驅動程式通過 Windows 用戶端認證,此檔案為 CodeQL SARIF 檔案。 Windows Server 認證可能包含程式碼分析和靜態驅動程式驗證器 (SDV) 結果檔案。 請查閱 WHCP 要求 文件,以了解裝置驅動程式認證需要執行哪些工具的具體詳細資訊。

  2. 將 CodeQL SARIF 檔案和程式代碼分析 XML 檔案放在目錄的最上層。 將 SDV DVL.xml檔案放在名為 sdv 的子資料夾中。

  3. 流覽至最上層目錄,其中包含命令行中的CodeQL SARIF檔案。

  4. 從 WDK 或已掛載的 eWDK 尋找 dvl.exe。

  5. 呼叫 dvl.exe,並傳入 /manualCreate 旗標、驅動程式名稱及所需的架構。 例如:

    請為您的 driverArchitecture 使用下列其中一個字串:

    • X86
    • X64
    • 手臂
    • Arm64

    注意

    請勿將「.sys」作為您的 driverName 字串的一部分。

  6. 檢查 DVL,確認其已正確產生。

此用法主要用於產生具有 CodeQL 結果的 DVL,但也可用於 SDV 和 CA 結果。

版本資訊

有關程式碼分析工具、Static Driver Verifier 以及驅動程式驗證記錄的最新資訊,請參閱 Windows 驅動程式套件 (WDK) 下載頁面上的 WDK 版本資訊。