解譯靜態驅動程序驗證器結果
當您從 Visual Studio 啟動靜態驅動程式驗證器並執行驅動程式分析時,結果會出現在 [主要] 索引標籤上的 [結果 ] 摘要中。
統計
Entrypoints 報告驅動程式原始程式碼中找到的進入點數目。 進入點是驅動程式提供的回呼或分派例程。 您可以使用函式角色類型宣告來定義進入點。 若要執行分析,SDV 必須找到至少一個進入點。 如需詳細資訊, 請參閱使用函式角色類型宣告。
找到 的瑕疵會報告分析期間發現的瑕疵數目。 瑕疵是違反 DDI 合規性規則。
測試執行 報告分析期間測試的規則數目。 這些是您在 [ 規則 ] 索引標籤上選取的規則。
地位
報告分析的狀態。 完成時,您可以檢閱找到的結果。
結果
已完成 (規則)
SDV 測試驅動程式違反規則,但無法證明違反規則。
此結果並不表示驅動程式沒有錯誤。 這表示只有 SDV 無法證明它違反了驗證通過中的規則。
缺陷
如果 SDV 回報了一或多個瑕疵,請按兩下 [瑕疵] 連結以使用靜態驅動程式驗證器報告來檢視錯誤的追蹤。
不適用
SDV 測試驅動程式是否違反規則,但驅動程式不支援分析所需的進入點,或驅動程式未呼叫規則所監視的函式。
如果規則會監視函式調用中的特定自變數(通常是資源的指標),而且驅動程式不會呼叫函式或未參考該自變數,規則就不會套用至驅動程式。
如果驅動程式確實指定進入點,而且它會呼叫規則所監視的函式,則此結果可能表示 SDV 找不到或未正確解譯進入點。 若要確認這種情況已發生,請檢查 並視需要更正 Sdv-map.h 檔案。 如需此程式的相關信息,請參閱 掃描驅動程式。
如需每個規則的詳細資訊,請參閱 靜態驅動程序驗證器規則 參考。
若要進一步檢查驅動程式,請使用不同的規則執行驗證。
逾時
SDV 停止驗證規則,因為它超過驗證每個規則的時間限制。 時間限制是在 [靜態驅動程序驗證器選項檔案] 中設定,或在 [組態] 索引卷標上的 [時間上限] 字段中設定。
逾時會被視為不確定的結果。 它不會指出驅動程序錯誤。 如果 SDV 回報逾時,請延長驗證允許的時間( sdv-default.xmlfile 中的SDV_SlamConfig_Timeout 值),然後再次執行驗證。
Completed (屬性)
SDV 執行指定驅動程式的驅動程式屬性規則。 驅動程式屬性規則會檢查驅動程式功能或支援的功能,而且是進一步分析的前奏。 例如,驅動程式屬性規則 CancelRoutine 會檢查 WDM 驅動程式是否已註冊 Cancel 例程。 如果未偵測到 Cancel 例程,則不適用特定的 WDM 規則。 這表示驅動程式屬性未滿足。
滿足 (屬性)
SDV 執行指定驅動程式的驅動程式屬性規則。 驅動程式屬性規則會檢查驅動程式功能或支援的功能,而且是進一步分析的前奏。 例如,驅動程式屬性規則 CancelRoutine 會檢查 WDM 驅動程式是否已註冊 Cancel 例程。 如果偵測到 Cancel 例程,則會套用特定的 WDM 規則。 這表示已滿足驅動程序屬性
空格符
SDV 停止驗證的規則數目,因為它超過驗證規則的記憶體限制。 記憶體限制是在靜態驅動程序驗證器選項檔案中設定,sdv-default.xml。
空格符會被視為不確定的結果。 如果 SDV 回報空格符,請擴充配置給驗證的空間( sdv-default.xml 檔案中的SDV_SlamConfig_Spaceout 值),然後再次執行驗證。
其他
SDV 發生內部錯誤無法復原的次數。 如需錯誤和偵錯的詳細資訊,請參閱靜態驅動程序驗證器錯誤訊息頁面。