共用方式為


適用於 Windows 硬體相容性程式的 CodeQL 常見問題

本文回答 Windows 硬體相容性計劃之 CodeQL 測試需求的相關常見問題。 瞭解 CodeQL 如何改善驅動程式認證,並確保高安全性標準。

何時需要 CodeQL 才能進行裝置認證?

如需需求詳細數據,請參閱 Windows 硬體相容性計劃認證程式

為什麼驅動程式原始程式碼需要 CodeQL?

在驅動程式原始程式碼上要求 CodeQL 的動機基於兩個主要原因:

  1. 藉由確保Microsoft認證的元件符合高安全性標準,以改善 Windows 安全性。

  2. 為硬體生態系統提供由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