Share via


verifier

適用於:Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012

驅動程式驗證器會監視 Windows 核心模式驅動程式和圖形驅動程式,以偵測可能損毀系統的非法函式呼叫或動作。 驅動程式驗證器會讓 Windows 驅動程式進行各種壓力和測試,來找出不當行為。 您可以設定要執行的測試,這可讓您針對驅動程式進行繁重的壓力負載或更簡化的測試。 您也可以同時在多個驅動程式或一次在一個驅動程式上執行驅動程式驗證器。

重要

您必須屬於電腦上的管理員群組,才能使用驅動程式驗證器。 執行驅動程式驗證器可能會導致電腦當機,因此您應該只在用於測試和偵錯的電腦上執行此公用程式。

語法

verifier /standard /all
verifier /standard /driver NAME [NAME ...]
verifier /flags <options> /all
verifier /flags <options> /driver NAME [NAME ...]
verifier /rules [OPTION ...]
verifier /query
verifier /querysettings
verifier /bootmode [persistent | disableafterfail | oneboot]
verifier /reset
verifier /faults [Probability] [PoolTags] [Applications] [DelayMins]
verifier /faultssystematic [OPTION ...]
verifier /log LOG_FILE_NAME [/interval SECONDS]
verifier /volatile /flags <options>
verifier /volatile /adddriver NAME [NAME ...]
verifier /volatile /removedriver NAME [NAME ...]
verifier /volatile /faults [Probability] [PoolTags] [Applications] [DelayMins]
verifier /domain <types> <options> /driver ... [/logging | /livedump]
verifier /logging
verifier /livedump
verifier /?
verifier /help

參數

參數 描述
/all 指示驅動程式驗證器公用程式在下一次開機後驗證所有已安裝的驅動程式。
/bootmode [persistent \| disableafterfail \| oneboot \| resetonunusualshutdown] 控制驅動程序驗證器公用程式的設定是否在重新啟動後啟用。 若要設定或變更此選項,您必須重新啟動電腦。 有下列模式可用:
  • persistent - 確保驅動程式驗證器設定會在多次重新啟動期間持續存在 (持續有效)。 這是預設設定。
  • disableafterfail - 如果 Windows 無法啟動,此設定會在後續重新啟動中停用驅動程式驗證器公用程式。
  • oneboot - 下次電腦啟動時,只啟用驅動程式驗證器設定。 驅動程式驗證器公用程式會在後續重新啟動時停用。
  • resetonunusualshutdown - 驅動程序驗證器公用程式將持續存在,直到發生異常關機為止。 可以使用其縮寫「rous」。
/driver <driverlist> 指定將驗證的一或多個驅動程式。 driverlist 參數是依照二進位名稱顯示的驅動程式清單,例如 driver.sys。 使用空格來分隔每個驅動程序名稱。 不支援萬用字元值,例如 n*.sys
/driver.exclude <driverlist> 指定一或多個要從驗證中排除的驅動程式。 只有在選取所有驅動程序進行驗證時,才適用此參數。 driverlist 參數是依照二進位名稱顯示的驅動程式清單,例如 driver.sys。 使用空格來分隔每個驅動程序名稱。 不支援萬用字元值,例如 n*.sys
/faults 啟用驅動程式驗證器公用程式中的低資源模擬功能。 您可以使用 /faults 取代 /flags 0x4。 不過您無法將 /flags 0x4 與 /faults 子參數搭配使用。 您可以使用 /faults 參數的下列子參數來設定低資源模擬:
  • Probability - 指定驅動程式驗證器公用程式對指定配置判定失敗的機率。 輸入數字 (以十進位或十六進位為單位),以代表驅動程序驗證器公用程式在 10,000 次機會中會對配置判定失敗的次數。 預設值 600 表示 600/10000 或 6%。
  • Pool Tags - 對驅動程式驗證器公用程式可對具有指定集區標籤的配置判定失敗的配置有所限制。 您可以使用萬用字元 (*) 來代表多個集區標籤。 若要列出多個集區標籤,請以空格分隔標籤。 依預設,所有配置都可能會失敗。
  • Applications - 對驅動程式驗證器公用程式可對指定程式配置判定失敗的配置有所限制。 輸入可執行檔的名稱。 若要列出程式,請以空格分隔程式名稱。 依預設,所有配置都可能會失敗。
  • DelayMins - 指定開機後的分鐘數,在這期間驅動程式驗證器公用程式不會刻意讓任何配置失敗。 此延遲可讓驅動程式載入,並在測試開始之前穩定系統。 輸入數字 (以十進位或十六進位為單位)。 預設值為 7 (分鐘)。
/faultssystematic 指定系統低資源模擬的選項。 使用 0x40000 旗標來選取 [系統低資源] 模擬選項。 下列是可用的選項:
  • enableboottime - 在電腦重新啟動時啟用錯誤插入。
  • disableboottime - 在電腦重新啟動時停用錯誤插入 (這是預設設定)。
  • recordboottime - 在電腦重新啟動時的假設狀況模式啟用錯誤插入。
  • resetboottime - 在電腦重新啟動時停用錯誤插入,並清除堆疊排除清單。
  • enableruntime - 動態啟用錯誤插入。
  • disableruntime - 動態停用錯誤插入。
  • recordruntime - 以動態方式在假設狀況模式中啟用錯誤插入。
  • resetruntime - 動態停用錯誤插入,並清除先前的錯誤堆疊清單。
  • querystatistics - 顯示目前的錯誤插入統計資料。
  • incrementcounter - 遞增用來識別插入錯誤時間的測試通過計數器。
  • getstackid COUNTER - 擷取指定的插入堆疊識別碼。
  • excludeestack STACKID - 從錯誤插入排除堆疊。
/flags <options> 在下一次重新啟動之後啟動指定的選項。 這個數字可以用十進位或十六進位 (包含 0x 前置詞) 格式輸入。 允許下列值的任何組合:
/flags <volatileoptions> 指定驅動程式驗證器公用程式選項,這些選項會立即變更而無需重新啟動。這個數字可以用十進位或十六進位 (包含 0x 前置詞) 格式輸入。 允許下列值的任何組合:
  • 值:1 或 0x1 (位元 0) - 特殊集區
  • 值:2 或 0x2 (位元 1) - 強制 IRQL 檢查
  • 值:4 或 0x4 (位元 2) - 低資源模擬
<probability> 介於 1 到 10,000 之間的數字指定錯誤插入的機率。 例如,指定 100 表示錯誤插入機率為 1% (100/10,000)。

如果未指定此參數,則會使用預設機率 6%。

<tags> 指定將插入錯誤且以空格字元分隔的集區標籤。 如果未指定此參數,則任何集區配置都可以插入錯誤。
<apps> 指定將插入錯誤的應用程式映像檔案名稱,並以空格字元分隔。 如果未指定此參數,則任何應用程式中都可以進行低資源模擬。
<minutes> 正數指定重新啟動後的期間長度,以分鐘為單位,在此期間不會發生錯誤插入。 如果未指定此參數,則會使用預設長度 8 分鐘
/iolevel <level> 指定 I/O 驗證的層級。 [層級] 的值可以是 1 - 啟用層級 1 I/O 驗證 (預設值) 或 2 - 啟用層級 1 I/O 驗證和層級 2 I/O 驗證。 如果未啟用 I/O 驗證 (透過使用 /flags 0x10),則會忽略 /iolevel
/log <logfilename> [/intervalseconds] 使用指定的名稱建立記錄檔。 驅動程式驗證器公用程式會根據您選擇性設定的間隔,定期將統計資料寫入此檔案。 預設間隔是 30 秒

如果在命令列輸入驗證程式 /log 命令,則不會傳回命令提示字元。 若要關閉記錄檔並傳回提示,請使用 [CTRL+C] 鍵。 重新啟動之後,若要建立記錄,您必須再次提交驗證程式 /log 命令。

/rules <option> 可停用的規則選項,包括:
  • query - 顯示可控制規則的目前狀態。
  • reset - 將所有規則重設為預設狀態。
  • default ID - 將規則識別碼設定為其預設狀態。 針對支援的規則,規則識別碼是錯誤檢查 0xC4 (DRIVER_VERIFIER_DETECTED_VIOLATION) 參數 1 值。
  • disable ID - 停用指定的規則識別碼。 針對支援的規則,規則識別碼是錯誤檢查 0xC4 (DRIVER_VERIFIER_DETECTED_VIOLATION) 參數 1 值。
/standard 在下一次重新啟動之後,啟動「標準」或預設的驅動程序驗證器選項。 標準選項包括特殊集區、強制 IRQL 檢查、集區追蹤、I/O 驗證、死結偵測、DMA 驗證、安全性檢查、其他檢查和 DDI 合規性檢查。 這相當於 /flags 0x209BB

[!注意] 從 1803 之後的 Windows 10 版本開始,使用 /flags 0x209BB 將不再自動啟用 WDF 驗證。 使用 /standard 語法來啟用標準選項,並包含 WDF 驗證。

/volatile 變更設定,而不重新啟動電腦。 動態設定會立即生效。

您可以使用 /volatile 參數搭配 /flags 參數來啟用和停用某些選項,而不需重新啟動。 您也可將 /volatile/adddriver 和 removedriver/ 參數搭配使用,來啟動或停止驅動程式的驗證,即使驅動程序驗證器公用程式未執行也一樣。 如需詳細資訊,請參閱使用動態設定

/adddriver <volatiledriverlist> 從動態設定新增指定的驅動程式。 若要指定多個驅動程式,請列出其名稱,並以空格分隔。 不支援萬用字元值,例如 n.sys
/removedriver <volatiledriverlist> 從動態設定移除指定的驅動程式。 若要指定多個驅動程式,請列出其名稱,並以空格分隔。 不支援萬用字元值,例如 n.sys
/reset 清除所有驅動程式驗證器公用程式設定。 下一次重新啟動之後,將不會驗證驅動程式。
/querysettings 顯示將啟動的選項摘要,以及將在下一次開機後驗證的驅動程式。 顯示不包含使用 /volatile 參數新增的驅動程序和選項。 如需檢視這些設定的其他方式,請參閱檢視驅動程序驗證器設定
/query 顯示驅動程式驗證器公用程式目前活動的摘要。 顯示中的 [層級] 欄位是使用 /volatile 參數設定的十六進位值選項。 如需每個統計資料的說明,請參閱監視全域計數器監視個別計數器
/domain <types> <options> 控制驗證器延伸模組設定。 支援下列驗證器延伸模組類型:
  • wdm - 啟用 WDM 驅動程式的驗證器延伸模組。
  • ndis - 啟用網路驅動程式的驗證器延伸模組。
  • ks - 啟用核心模式串流驅動程式的驗證器延伸模組。
  • audio - 啟用音訊驅動程式的驗證器延伸模組。
. 支援下列延伸模組選項:
  • rules.default - 啟用所選驗證程式延伸模組的預設驗證規則。
  • rules.all - 啟用所選驗證程式延伸模組的所有驗證規則。
/logging 針對選取的驗證器延伸模組偵測到的違規規則啟用記錄。
/livedump 針對所選驗證器延伸模組偵測到的違規規則啟用即時記憶體傾印收集。
/? 顯示命令列說明。

傳回碼

下列值會在驅動程式驗證器執行之後傳回:

  • 0: EXIT_CODE_SUCCESS

  • 1: EXIT_CODE_ERROR

  • 2: EXIT_CODE_REBOOT_NEEDED

備註

  • 您可以使用 /volatile 參數搭配某些驅動程式驗證器公用程式 /flags 選項和 /standard。 您無法將 /volatile 搭配 /flags 選項用於 DDI 合規性檢查、Power Framework 延遲模糊、Storport 驗證或 SCSI 驗證。 如需詳細資訊,請參閱使用動態設定