共用方式為


靜態驅動程式驗證器錯誤訊息

本節說明一些較常看到 SDV 錯誤訊息的意義,並建議解決這些問題的方法。

從 Visual Studio 啟動 SDV 時,您可能會看到下列錯誤:

  • SDV 只能在非偵錯組態上運作:如訊息所示,SDV 必須在非偵錯組態上執行。 請確定您的專案已設定為發行組態,如果無法使用,請建立發行組態,然後重新開機 SDV。
  • 載入可用規則時發生錯誤:如果驅動程式不是 WDM、KMDF、NDIS 或 Storport 驅動程式) ,SDV 找不到驅動程式模型的規則,或無法正確判斷驅動程式模型 (。 如果 WDK 已正確安裝,您可以直接從命令列執行 SDV 來解決此問題, (請參閱 靜態驅動程式驗證程式命令 (MSBuild) ) 。
  • SDV 無法清除驅動程式目錄:在某些情況下,當您按一下 [清除] 按鈕時,許可權錯誤可能會防止 SDV 正確地清除驅動程式目錄中的舊結果。 如果先前執行的 sdv 檔案目前正在使用中,也會發生此錯誤。 請確定驅動程式目錄中沒有任何使用 SDV 檔案,然後移除任何 「sdv」 和 「sdv.temp」 資料夾和任何 「staticdv.job」 檔案。

如果在嘗試分析時 SDV 失敗,則會將失敗的階段列印到標準輸出。 從 Visual Studio GUI 執行 SDV 時,您可以切換至 [警示] 索引標籤來查看此輸出。

SDV 可能失敗的階段如下:

  • NormalBuild:SDV 無法使用標準 MSBuild 命令來建置驅動程式。 如果您有特製化的建置邏輯、依賴專案檔中的方案專案,或有外部建置元件,就可能會發生這種情況。 如果您的專案依賴 $ (SolutionDir) 屬性,您可以直接從命令列重新執行 SDV,並將它附加至命令列,方法是將 /p:SolutionDir=[您的方案 dir] 新增至 MSBuild 命令的結尾。 請參閱 MSBuild) (靜態驅動程式驗證器命令
  • InterceptedBuild:SDV 無法建置驅動程式進行分析。
  • 掃描:SDV 找不到驅動程式的進入點。 此處的錯誤可能表示找不到進入點,而且您應該更新您的函式 roletypes 或 sdv-map.h。 如需詳細資訊,請參閱 使用函式角色類型宣告核准 Sdv-map.h 檔案
  • FinalCompile:SDV 無法使用規則和 OS 模型編譯驅動程式。
  • CheckRule:SDV 無法正確驗證規則。

您可以啟用 SDV 的診斷,以深入瞭解錯誤的詳細資料。 如需詳細資訊,請參閱 靜態驅動程式驗證器診斷