本文回答 Windows 硬體相容性計劃之 CodeQL 測試需求的相關常見問題。 瞭解 CodeQL 如何改善驅動程式認證,並確保高安全性標準。
何時需要 CodeQL 才能進行裝置認證?
如需需求詳細數據,請參閱 Windows 硬體相容性計劃認證程式 。
為什麼驅動程式原始程式碼需要 CodeQL?
在驅動程式原始程式碼上要求 CodeQL 的動機基於兩個主要原因:
藉由確保Microsoft認證的元件符合高安全性標準,以改善 Windows 安全性。
為硬體生態系統提供由Microsoft安全性工程師積極開發的高品質工具。
CodeQL 和靜態工具標誌測試適用於何種類型的驅動程式?
目前,靜態工具標誌測試需要執行 CodeQL,並傳遞所有內核模式驅動程式的 「必須修正」 查詢集,但圖形驅動程式除外。
強烈建議在圖形驅動程序上執行 CodeQL,即使目前並非必要也一樣。 某些查詢也可以識別使用者模式元件中有用的瑕疵。
哪些授權會控管適用於驅動程序開發人員的CodeQL使用方式?
在 硬體實驗室套件 (HLK) 終端使用者許可協定下,允許使用 CodeQL 進行 WHCP 測試。
對於 WHCP 參與者,HLK 的 EULA 會覆寫 GitHub 的 CodeQL 條款及條件。 HLK EULA 指出,可以在自動化分析、CI 或 CD 期間使用 CodeQL,作為一般工程流程的一部分,目的是分析要提交並認證的驅動程式,以成為 WHCP 的一部分。
我需要使用 Visual Studio 或 msbuild 來執行 CodeQL 嗎?
CodeQL 不需要使用 MSBuild 或 Visual Studio。
如需支援的編譯程式清單,請參閱 支援的語言和架構 。
HLK 如何確認我的驅動程式已由 CodeQL 掃描?
HLK 中的靜態工具標誌測試是強制執行這項需求的測試。
靜態工具標誌測試的詳細數據可在其 MS Docs 頁面上找到。
CodeQL 所報告的瑕疵是否都是確實的瑕疵?
每個 CodeQL 查詢都有不同層級的精確度。
我們的目標是將誤報降到最低,但偶爾會發生。 我們的 「必須修正 」查詢套件已開發並挑選來搭配 WHCP 程式使用,因為我們的廣泛測試結果幾乎為零誤判。
如果您在 「 必須修正 」查詢集中的查詢中看到誤判,請立即傳送電子郵件 stlogohelp@microsoft.com ,或在 Windows-Driver-Developer-Supplemental-Tools 存放庫上提出問題,我們將儘速解決。
查詢的「警告」或「錯誤」分類是否對靜態工具標誌測試的目的很重要?
CodeQL 會將查詢分類為 錯誤、 警告或 問題,但此分類與 Windows 硬體相容性計劃與靜態工具標誌測試評分結果的方式不同。
任何 「必須修正 」查詢中有缺陷的驅動程式不會通過靜態工具標誌測試並失敗認證,不論查詢分類為何(例如 警告)。
我可以在 Visual Studio 解決方案上產生 DVL 嗎?
否,DVL 產生必須在專案層級執行,且無法在 Visual Studio 解決方案上執行。
如需產生 DVL 的完整指示,請參閱 建立驅動程式驗證記錄。
我可以在 msbuild 或 Visual Studio 的內容之外產生驅動程式驗證記錄檔 (DVL) 嗎?
作為 Windows 驅動程式套件 (WDK) 和企業版 WDK (eWDK) 的一部分,Microsoft隨附稱為 dvl.exe 的元件,可用來產生驅動程式驗證記錄 (DVL)。
在 WDK/eWDK 預覽版本 21342 和更新版本中,您可以指定驅動程式名稱和架構,從命令行產生 DVL,而不使用 msbuild 或 Visual Studio。
如需詳細資訊 ,請參閱建立驅動程式驗證記錄 。
我有關於如何在驅動程式上使用 CodeQL 的批注或問題,我在哪裡傳送意見反應?
將您的意見反應與問題傳送至 stlogohelp@microsoft.com。