如何建立驅動程式驗證記錄
Windows 硬體認證計劃需要驅動程式驗證記錄檔 (DVL) 以提交驅動程式。 DVL 包含靜態分析工具 CodeQL 的結果摘要。 DVL 不包含任何原始程式碼資訊。 建立驅動程式的 DVL 之前,請執行 CodeQL、程式代碼分析工具和靜態驅動程式驗證器。 如需詳細資訊,請參閱 靜態工具標誌測試和 CodeQL 和靜態工具標誌測試。
準備驅動程式
- 在執行程式代碼分析工具之前,請先使用最新的 Windows 驅動程式套件來建置並連結您的驅動程式。
- 針對方案組態選取 [發行],針對解決方案平台選取 [x64]。
判斷並執行必要的測試
若要判斷您想要認證的 Windows 版本需要哪些測試,請參閱 靜態工具標誌測試。
視需要執行下列測試。
執行 CodeQL。 解決並修正找到的瑕疵。 如果被視為「必須修正」的瑕疵未更正,則認證會失敗。 如需 CodeQL 和靜態工具標誌測試的詳細資訊,請參閱 CodeQL 和靜態工具標誌測試。
執行 靜態驅動程式驗證器。 如需建立記錄檔的相關信息,請參閱建立靜態驅動程序驗證器和使用靜態驅動程序驗證器來尋找驅動程式缺陷的記錄檔。
執行驅動程式的程式代碼分析工具。 解決並修正找到的任何瑕疵。 請參閱 建立程式碼分析工具 的記錄檔和 如何執行驅動程式的程式代碼分析。 如需程式代碼分析的詳細資訊,請參閱 使用程式碼分析工具分析應用程式品質。
建立驅動程式驗證記錄
- 從 [ 驅動程式 ] 功能表中,選取 [ 建立驅動程序驗證記錄]。
- 確認偵測到程式 代碼分析記錄檔、 靜態驅動程序驗證程序記錄檔和 CodeQL 記錄 檔。
- 選取 建立。
驅動程式驗證記錄檔的擴展名為 。DVL.XML。 記錄檔會在項目資料夾中建立,例如 \myDriverProject\myDriverName。DVL.XML。
SDV 會執行驅動程式的全新重建,這會移除程式代碼分析記錄。 因此,在執行 CA 之前,請務必先執行 SDV。
當您準備好使用 Windows 硬體實驗室套件來測試驅動程式時,請將驅動程式驗證記錄複製到測試電腦上的 %systemdrive%\DVL 目錄。 複製新的驅動程式驗證記錄檔之前,請先刪除測試電腦上的目錄內容。
重要
認證提交可以接受 DVL 檔案中的逾時、空格和其他非成功結果。 非成功的結果不會造成 HLK 中的靜態工具測試失敗。
使用 Visual Studio 命令提示字元視窗
您也可以從 Visual Studio 命令提示字元視窗建立驅動程式驗證記錄。 使用隨 Visual Studio 一起安裝的 Visual Studio 原生工具命令提示字元,或使用 Enterprise Windows Driver Kit (EWDK)。
msbuild.exe <vcxprojectfile> /target:dvl /p:Configuration="Release" /P:Platform=x64
在 msbuild 或 Visual Studio 外部建立驅動程式驗證記錄
Microsoft隨附於 Windows 驅動程式套件 (WDK) 和企業 版 WDK (eWDK) 元件,稱為 dvl.exe ,可用來透過命令行產生驅動程式驗證記錄 (DVL)。 從 WDK/eWDK 預覽版本 21342 和更新版本開始,您可以從 msbuild 或 Visual Studio 內容以外的命令行產生 DVL。
從 CodeQL sarif 檔案產生 DVL
- 從 WDK 或掛接的 eWDK 找出dvl.exe。 它通常安裝在 C:\Program Files (x86)\Windows Kits\10\Tools\dvl\dvl.exe
- 藉由傳遞
/manualCreate
旗標、驅動程式名稱、所需的架構和/sarifPath
,呼叫dvl.exe。 其中/sarifPath
包含包含 sarif 檔案的資料夾路徑。
"C:\Program Files (x86)\Windows Kits\10\Tools\dvl\dvl.exe" /manualCreate <driverName> <driverArchitecture> /sarifPath <pathToSarifLocation>
從 CodeQL sarif 檔案產生 DVL,或使用 CA 和 SDV 時
將必須取用的結果,以在單一目錄中建立 DVL,以及任何 vcxproj 檔案。 若要讓驅動程序獲得 Windows 用戶端認證,此檔案是 CodeQL SARIF 檔案。 Windows Server 認證可能包含程式碼分析和靜態驅動程式驗證器 (SDV) 結果檔案。 請查看 WHCP 需求 檔,以取得設備驅動器認證所需執行之工具的特定詳細數據。
將 CodeQL SARIF 檔案和程式代碼分析 XML 檔案放在目錄的最上層。 將 SDV DVL.xml檔案放在名為 sdv 的子資料夾中。
流覽至最上層目錄,其中包含命令行中的CodeQL SARIF檔案。
從 WDK 或掛接的 eWDK 找出dvl.exe。
藉由傳遞
/manualCreate
旗標、驅動程式名稱和所需的架構,呼叫dvl.exe。 例如:針對 driverArchitecture 使用下列其中一個字串:
- X86
- X64
- Arm
- Arm64
注意
請勿在 driverName 字串中包含 「.sys」。
檢查 DVL 以確保它已正確產生。
此用法主要用於產生具有 CodeQL 結果的 DVL,但也可用於 SDV 和 CA 結果。
版本資訊
有關程式代碼分析工具、靜態驅動程序驗證器和驅動程式驗證記錄的最新資訊,位於 Windows 驅動程式套件 (WDK) 下載頁面上的 WDK 版本資訊中。