verifier

適用対象: Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012

ドライバーの検証ツールは、Windows カーネルモード ドライバーとグラフィックス ドライバーを監視して、無効な関数呼び出しやシステムを破損する可能性があるアクションを検出します。 ドライバーの検証ツールを使用すると、Windows ドライバーに対してさまざまな負荷やテストを実施し、不適切な動作を見つけることができます。 実行するテストを構成できます。これにより、ドライバーに非常に高い負荷をかけたり、より効率的なテストを行ったりすることができます。 また、ドライバーの検証ツールは、複数のドライバーで同時に実行することも、一度に 1 つのドライバーに対して実行することもできます。

重要

ドライバーの検証ツールを使用するユーザーは、コンピューターの Administrators グループに属している必要があります。 ドライバーの検証ツールを実行すると、コンピューターがクラッシュする可能性があるため、このユーティリティはテストおよびデバッグに使用するコンピューターでのみ実行してください。

構文

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

Parameters

パラメーター 説明
/all 次の起動後に、インストールされているすべてのドライバーを検証するようにドライバーの検証ツール ユーティリティに指示します。
/bootmode [persistent \| disableafterfail \| oneboot \| resetonunusualshutdown] 再起動後にドライバーの検証ツール ユーティリティの設定を有効にするかどうかを制御します。 このオプションを設定または変更するには、コンピューターを再起動する必要があります。 次のモードを使用できます。
  • persistent - 再起動の回数が多くてもドライバーの検証ツールの設定が保持されるようにします (有効なまま)。 これが既定の設定です。
  • disableafterfail - この設定は、Windows の起動が失敗すると、その後の再起動でドライバーの検証ツール ユーティリティを無効にします。
  • oneboot - 次にコンピューターが起動されるときにだけ、ドライバーの検証ツールの設定を有効にします。 その後の再起動では、ドライバーの検証ツール ユーティリティは無効になります。
  • resetonunusualshutdown - 異常なシャットダウンが発生するまで、ドライバーの検証ツール ユーティリティは維持されます。 省略形の "rous" を使用できます。
/driver <driverlist> 検証するドライバーを 1 つ以上指定します。 driverlist パラメーターは、driver.sys のような、バイナリ名によるドライバーのリストです。 各ドライバー名を区切るにはスペースを使用します。 n*.sys のようなワイルドカード値はサポートされていません。
/driver.exclude <driverlist> 検証から除外するドライバーを 1 つ以上指定します。 このパラメーターは、すべてのドライバーが検証対象として選択されている場合にのみ適用されます。 driverlist パラメーターは、driver.sys のような、バイナリ名によるドライバーのリストです。 各ドライバー名を区切るにはスペースを使用します。 n*.sys のようなワイルドカード値はサポートされていません。
/faults ドライバーの検証ツール ユーティリティで低リソースのシミュレーション機能を有効にします。 /flags 0x4 の代わりに /faults を使用できます。 ただし、/flags 0x4/faults のサブパラメーターを同時に使用することはできません。 /faults パラメーターの次のサブパラメーターを使用して、低リソースのシミュレーションを構成することができます。
  • Probability - ドライバーの検証ツール ユーティリティで特定の割り当てが失敗する確率を指定します。 10,000 回のうちドライバーの検証ツール ユーティリティが割り当てに失敗する回数を表す値 (10 進数または 16 進数) を入力します。 既定値の 600 は、600/10000 つまり 6% を意味します。
  • PoolTags - ドライバーの検証ツール ユーティリティが失敗する可能性がある割り当てを、指定したプール タグを持つ割り当てに制限します。 ワイルドカード文字 (*) を使って、複数のプール タグを表すことができます。 複数のプール タグのリストを指定するには、タグをスペースで区切ります。 既定では、すべての割り当てが失敗する可能性があります。
  • Applications - ドライバーの検証ツール ユーティリティが失敗する可能性がある割り当てを、指定したプログラムの割り当てに制限します。 実行可能ファイルの名前を入力します。 プログラムのリストを指定するには、プログラム名をスペースで区切ります。 既定では、すべての割り当てが失敗する可能性があります。
  • DelayMins - ドライバーの検証ツール ユーティリティが意図的に割り当てを失敗させない、起動後の時間 (分単位) を指定します。 この遅延により、ドライバーが読み込まれ、テストが開始される前にシステムが安定します。 値 (10 進数または 16 進数) を入力します。 既定値は 7 (分) です。
/faultssystematic 体系的な低リソースのシミュレーションのオプションを指定します。 体系的な低リソースのシミュレーションのオプションを選ぶには、0x40000 フラグを使用します。 次のオプションを使用できます。
  • enableboottime - コンピューターの再起動をまたぐフォールト挿入を有効にします。
  • disableboottime - コンピューターの再起動をまたぐフォールト挿入を無効にします (これは既定の設定です)。
  • recordboottime - コンピューターの再起動をまたぐ What If モードでのフォールト挿入を有効にします。
  • resetboottime - コンピューターの再起動をまたぐフォールト挿入を無効にして、スタック除外リストをクリアします。
  • enableruntime - フォールト挿入を動的に有効にします。
  • disableruntime - フォールト挿入を動的に無効にします。
  • recordruntime - What If モードでのフォールト挿入を動的に有効にします。
  • resetruntime - フォールト挿入を動的に無効にして、それまでのフォールトのあるスタック リストをクリアします。
  • querystatistics - 現在のフォールト挿入の統計を表示します。
  • incrementcounter - フォールトが挿入されたことを示すために使用されるテスト成功カウンターをインクリメントします。
  • getstackid COUNTER - 指定されている挿入されたスタック識別子を取得します。
  • excludestack STACKID - フォールト挿入からスタックを除外します。
/flags <options> 次回の再起動後に、指定したオプションをアクティブにします。 この値は、10 進数または 16 進数 (0x プレフィックスを使用) の形式で入力できます。 次の値の任意の組み合わせを使用できます。
/flags <volatileoptions> 再起動することなく、変更が直ちに適用されるドライバー検証ユーティリティ オプションを指定します。この値は、10 進数または 16 進数 (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 検証のレベルを指定します。 [Level] では次の値を指定できます。1 - レベル 1 の I/O 検証を有効にします (既定値)。2 - レベル 1 の I/O 検証とレベル 2 の I/O 検証を有効にします。 I/O 検証が有効になっていない場合 (/flags 0x10 を使用)、/iolevel は無視されます。
/log <logfilename> [/intervalseconds] 指定した名前を使用してログ ファイルを作成します。 ドライバーの検証ツール ユーティリティは、オプションで設定できる間隔に基づいて、このファイルに統計を定期的に書き込みます。 既定の間隔は "30 秒" です。

verifier の /log コマンドをコマンド ラインで入力した場合、コマンド プロンプトには戻りません。 ログ ファイルを閉じてプロンプトに戻るには、Ctrl + C キーを使用します。 再起動後にログを作成するには、verifier /log コマンドをもう一度送信する必要があります。

/rules <option> 無効にできるルールのオプションは次のとおりです。
  • query - 制御可能なルールの現在の状態が表示されます。
  • reset - すべてのルールを既定の状態にリセットします。
  • default ID - ルール ID を既定の状態に設定します。 サポートされているルールの場合、ルール ID はバグ チェック 0xC4 (DRIVER_VERIFIER_DETECTED_VIOLATION) のパラメーター 1 の値です。
  • disable ID - 指定したルール ID を無効にします。 サポートされているルールの場合、ルール ID はバグ チェック 0xC4 (DRIVER_VERIFIER_DETECTED_VIOLATION) のパラメーター 1 の値です。
/standard 次回の再起動後に、ドライバーの検証ツールの "標準" つまり既定のオプションをアクティブにします。 標準オプションは、特別なプール、強制 IRQL 検査、プールのトラック、I/O 検証、デッドロック検出、DMA の検証、セキュリティの検査、その他の検査、DDI 準拠の検査です。 これは、/flags 0x209BB と同じです。

[!NOTE] Windows 10 バージョン 1803 以降では、/flags 0x209BB を使用しても WDF の検証は自動的に有効になりません。 WDF の検証も含めて標準のオプションを有効にするには、/standard 構文を使用します。

/volatile コンピューターを再起動せずに設定を変更します。 volatile の設定は直ちに有効になります。

/volatile パラメーターと /flags パラメーターを使用すると、再起動せずに一部のオプションを有効または無効にすることができます。 また、ドライバーの検証ツール ユーティリティが実行されていない場合でも、/volatile/adddriver および /removedriver パラメーターを使用して、再起動せずにドライバーの検証を開始または停止することもできます。 詳しくは、「揮発性の設定の使用」をご覧ください。

/adddriver <volatiledriverlist> 指定したドライバーを揮発性の設定に追加します。 複数のドライバーを指定するには、名前のリストをスペースで区切ります。 n.sys のようなワイルドカード値はサポートされていません。
/removedriver <volatiledriverlist> 指定したドライバーを揮発性の設定から削除します。 複数のドライバーを指定するには、名前のリストをスペースで区切ります。 n.sys のようなワイルドカード値はサポートされていません。
/reset ドライバーの検証ツール ユーティリティのすべての設定をクリアします。 次の再起動後、ドライバーは検証されません。
/querysettings 次の起動の後でアクティブにされるオプションと検証されるドライバーの概要を表示します。 この表示には、/volatile パラメーターを使用して追加されたドライバーとオプションは含まれません。 これらの設定を表示する他の方法については、「ドライバーの検証ツールの設定の表示」をご覧ください。
/query ドライバーの検証ツール ユーティリティの現在のアクティビティの概要を表示します。 表示の Level フィールドは、/volatile パラメーターで設定されたオプションの 16 進数の値です。 各統計の説明については、「グローバル カウンターの監視」と「個別カウンターの監視」をご覧ください。
/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

解説