共用方式為


系統低資源模擬

系統性低資源模擬功能會在核心模式的驅動程式中插入資源故障。 此選項會穿透驅動程式錯誤處理路徑。 測試這些路徑歷來非常困難。 系統化低資源模擬選項會以可預測的方式引入資源失敗,這使得它驗證出來的問題可以重現。 由於錯誤路徑很容易重現,因此也可讓您輕鬆地驗證這些問題的修正程式。

為了協助您判斷錯誤的根本原因,會提供調試程序擴充功能,讓您確切地知道插入了哪些失敗,以及順序為何。

小心 當您在驗證電腦上的所有(或大量)驅動程式時,這個選項不適用。 只有在您對個別驅動程式或其附加的篩選驅動程式進行目標測試時,才應該使用此選項。 同時在大量驅動程式上使用此選項可能會導致無法預期的結果,並可能強制與您正在測試的驅動程式無關的元件當機。

注意 針對 Windows 8.1,WDK 8 中提供的 堆疊式故障插入 功能已整合至驅動程式驗證器。 在執行 Windows 8.1 的電腦上,請使用 [系統性低資源模擬] 選項。

在特定驅動程式上啟用系統性低資源模擬選項時,它會攔截從該驅動程式到核心的部分呼叫,並 Ndis.sys。 系統性低資源狀態模擬會查看呼叫堆疊,特別是來自已啟用的驅動程式的呼叫堆疊部分。 如果這是程序第一次遇到該堆疊,呼叫將根據呼叫的語意而失敗。 否則,如果之前已經看到該呼叫,它會通過未變更。 系統性低資源模擬包含處理驅動程式可以多次載入和卸載的事實的邏輯。 它會辨識呼叫堆疊是否相同,即使驅動程式重載至不同的記憶體位置也一樣。

啟用此選項

您可以使用驅動程式驗證器管理員或 Verifier.exe 命令列,為一或多個驅動程式啟用系統性低資源模擬功能。 如需詳細資訊,請參閱 選取驅動程式驗證器選項。 您必須重新啟動電腦,才能啟動或停用系統性低資源模擬選項。

  • 在命令行

    Windows 11

    在指令行中,系統性低資源模擬由 驗證者 /rc 19 36驗證者 /dif 19 表示,兩者都包含必要的 DIF 模式。

    此功能將在下次啟動後啟用,或者如果將 /now 新增至命令字串,則立即啟用。

    Windows 10 及以下版本

    在命令列中,系統性低資源模擬會以 驗證器 /flags 0x040000 (位 18) 表示。 若要系統性低資源模擬,請使用 0x040000 的旗標值,或將0x040000新增至旗標值。 例如:

    verifier /flags 0x040000 /driver MyDriver.sys
    

    下一次開機之後,此功能將會處於作用中狀態。

    一般

    當您啟用系統性低資源模擬選項時,您可以使用 /faultssystematicOPTION 指令 行選項來進一步控制系統性低資源模擬。

    選項 說明

    啟用開機時間功能

    在整個電腦重新啟動過程中持續啟用錯誤插入功能。

    disableboottime

    停用在電腦重新啟動期間的故障注入(這是預設設定)。

    記錄啟動時間

    在計算機重啟時,在「假設情境」模式下啟用故障注入。

    重設開機時間

    在電腦重新啟動時停用錯誤插入,並清除堆疊排除清單。

    啟用執行階段

    動態啟用故障注入。

    disable執行時間

    動態停用錯誤注入。

    記錄執行時間

    假設 模式下動態啟用故障注入。

    重設執行時間

    動態停用錯誤插入,並清除先前發生錯誤的堆疊清單。

    查詢統計資料

    顯示目前的故障注入統計。

    遞增計數器

    遞增一個用於檢測故障注入時的測試通過次數的計數器。

    getstackid 計數器

    擷取指定的注入堆疊識別碼。

    excludestack STACKID

    從故障注入中排除堆疊。

  • 使用驅動程式驗證器管理員

    1. 啟動驅動程式驗證器管理員。 在命令提示字元視窗中輸入 驗證程式
    2. 選取 [建立自定義設定] (適用於程式代碼開發人員), 然後按 [ 下一步]。
    3. 選擇 從完整清單中選取個別設定
    4. 選擇(勾選) 系統性低資源模擬
    5. 重新啟動電腦

系統性低資源模擬導致的調試錯誤檢查

系統性低資源模擬發現的大多數問題都會導致錯誤檢查。 為了協助判斷這些程式碼錯誤的原因, 適用於 Windows 的偵錯工具 提供偵錯工具延伸模組 (kdexts.dll) 和必要的符號。

執行調試程序擴充功能

  • 從偵錯工具命令提示字元中,輸入下列命令:

    !verifier 0x800
    

這會將資訊傾倒到您的偵錯工具,其中顯示最近注入失敗的呼叫堆疊。