共用方式為


系統低資源模擬

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

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

注意 當您 在計算機上驗證所有 (或大量集合) 驅動程式時,此選項不適合使用。 只有在您執行個別驅動程式或其附加篩選驅動程式的目標測試時,才應該使用此選項。 同時在大量驅動程式上使用此選項可能會導致無法預期的結果,而且可能會強制與您所測試驅動程式無關的元件當機。

注意 針對 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
    

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

    一般

    當您啟用系統低資源模擬選項時,可以使用 /faultssystematic OPTION 命令行選項進一步控制系統低資源模擬。

    OPTION 描述

    enableboottime

    在電腦重新啟動時啟用錯誤插入。

    disableboottime

    在電腦重新啟動時停用錯誤插入(這是預設設定)。

    recordboottime

    在電腦重新啟動模式,啟用錯誤插入。

    resetboottime

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

    enableruntime

    動態啟用錯誤插入。

    disableruntime

    動態停用錯誤插入。

    recordruntime

    以動態方式在 if 模式中啟用錯誤插入。

    resetruntime

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

    querystatistics

    顯示目前的錯誤插入統計數據。

    incrementcounter

    遞增用來識別插入錯誤時間的測試通過計數器。

    getstackid COUNTER

    擷取指定的插入堆疊標識碼。

    excludestack STACKID

    從錯誤插入中排除堆疊。

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

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

對系統性低資源模擬所造成的錯誤檢查進行偵錯

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

執行調試程序擴充功能

  • 從除錯程式命令提示字元中,輸入下列命令:

    !verifier 0x800
    

這會將資訊傾印到您的調試程式,其中顯示插入最近失敗的呼叫堆疊。