この機能は、Windows XP 以降のバージョンの Windows オペレーティング システムでのみ使用できます。
Windows 7 以降のバージョンの Windows オペレーティング システムでは、I/O 検証を選択すると、拡張 I/O 検証が自動的にアクティブ化されます。 その項目を別のオプションとして選択することはできず、また、選択する必要もありません。
拡張 I/O 検証がアクティブになると、ドライバー検証ツールは、いくつかの I/O マネージャー ルーチンの呼び出しを監視し、PnP IRP、電源 IRP、WMI IRP のストレス テストを実行します。
Windows Vista と Windows XP では、拡張 I/O 検証は I/O 検証とは別にアクティブ化されますが、両方のオプションを選択すると、ドライバーの I/O インターフェイス メソッドをより完全にテストできます。
拡張 I/O 検証の機能
ドライバー検証ツールは、拡張 I/O 検証をアクティブ化するときに、次のチェックを追加します。
IoMarkIrpPending を呼び出した場合にのみ、ドライバーがSTATUS_PENDINGを返すように、すべての IRP を監視します。
IoDeleteDevice の使用を監視して、ドライバーが同じデバイスをもう一度削除しないことを確認し、デバイス オブジェクトの不適切なデタッチと削除を検出します。
ドライバーがすべての IoSkipCurrentIrpStackLocation 呼び出しを正しくアンワインドすることを確認します。
新しいストレスとテストは次のとおりです。
プラグ アンド プレイ (PnP) ドライバーがデバイスの開始順序を想定しないように、列挙されたデバイスの順序を調整します。
PnP と Power IRP の完了時の状態を調整して、ディスパッチ ルーチンから正しくない状態を返すドライバーをキャッチします。
偽の Power IRP を送信してドライバー コード パスのバグをテストする。
ドライバー コード パスのバグをテストするために、偽の WMI IRP を送信する。
すべての WDM スタックに偽のフィルターを挿入する。
拡張 I/O 検証エラーの表示
拡張 I/O 検証でキャッチされたドライバー エラーは、 レベル 2 の I/O 検証でキャッチされたものと同じ方法で表示されます。
ブルー スクリーンでは、これらのエラーは、 メッセージ IO システム検証エラー と文字列 WDM DRIVER ERRORXXX によって示されます。 XXX は I/O エラー コードです。
クラッシュ ダンプ ファイルでは、これらのエラーは 、メッセージ BugCheck 0xC9 (DRIVER_VERIFIER_IOMANAGER_VIOLATION) と I/O エラー コードによって示されます。 この場合、バグ チェック 0xC9の最初のパラメーターとして I/O エラー コードが表示されます。
カーネル デバッガー (KD または WinDbg) では、これらのエラーは、 メッセージ WDM DRIVER ERROR と説明テキスト文字列によって示されます。 カーネル デバッガーがアクティブな場合、レベル 2 のエラーを無視してシステム操作を再開できます。 (これは、他のバグ チェックでは実行できません)。
ブルー スクリーン、クラッシュ ダンプ ファイル、カーネル デバッガーにも追加情報が表示されます。 すべての I/O 検証レベル 2 エラー メッセージの詳細については、「 バグ チェック 0xC9」を参照してください。
このオプションのアクティブ化
ドライバー検証ツール マネージャーまたは Verifier.exe コマンド ラインを使用して、1 つ以上のドライバーの拡張 I/O 検証機能をアクティブ化できます。 詳細については、「 ドライバー検証ツールオプションの選択」を参照してください。
手記 Windows 7 以降のバージョンの Windows オペレーティング システムでは、I/O 検証を選択すると、拡張 I/O 検証が自動的にアクティブ化されます。 その項目を別のオプションとして選択することはできず、また、選択する必要もありません。
コマンド ラインで
コマンド ラインでは、拡張 I/O 検証オプションは ビット 6 (0x40) で表されます。 拡張 I/O 検証をアクティブにするには、0x40のフラグ値を使用するか、フラグ値に0x40を追加します。 例えば次が挙げられます。
verifier /flags 0x40 /driver MyDriver.sys
この機能は、次の起動時にアクティブになります。
Windows Vista 以降のバージョンの Windows では、 /volatile パラメーターをコマンドに追加することで、コンピューターを再起動せずに拡張 I/O 検証をアクティブ化および非アクティブ化することもできます。 例えば次が挙げられます。
verifier /volatile /flags 0x40 /adddriver MyDriver.sys
この設定はすぐに有効ですが、コンピューターをシャットダウンまたは再起動すると失われます。 詳細については、「 揮発性設定の使用」を参照してください。
ドライバー検証ツール マネージャーの使用
- ドライバー検証ツール マネージャーを起動します。 コマンド プロンプト ウィンドウに 「Verifier 」と入力します。
- (コード開発者向けの) [カスタム設定の作成] を選択し、[次へ] をクリックします。
- 完全な一覧から [個々の設定を選択] を選択します。
- 拡張 I/O 検証を選択 (チェック) します。
DMA 検証機能も標準設定に含まれています。 この機能を使用するには、ドライバー検証ツール マネージャーで、[ 標準設定の作成] をクリックします。