Share via


不変な MDL のドライバー用検査

ドライバーの不変 MDL チェック オプションは、ドライバーがそれぞれ不変の MDL バッファーを処理する方法を監視します。 このオプションは、不変 MDL バッファーの不正な変更を検出します。 このオプションを使用するには、少なくとも 1 つのドライバーで I/O 検証を有効にする必要があります。

注: このオプションは、Windows 8 以降で使用できます。

ドライバー オプションの不変 MDL の確認は、スタックの不変 MDL チェックよりも、不変 MDL チェックのより集中的な形式を実行します。 ドライバーの不変 MDL チェックがアクティブな場合、IoCallDriver ルーチンと IoCompleteRequest ルーチンの呼び出す毎にバッファーの不変性が検証されます。

新しい不変 MDL バッファーが IRP で表示されるたびに、ドライバー検証ツールは、バッファーの内容の署名を計算し、内部データベースに格納します。 ドライバー検証ツールは、以前に確認した不変 MDL バッファーを検出すると、データベース内の署名と、現在の不変 MDL バッファーの内容で計算された署名を比較することによって、バッファーの内容が変更されていないことを検証します。

このオプションはグローバルで、一部のドライバーを選択的に強制することはできません。

このオプションのアクティブ化

ドライバー検証ツール マネージャーまたは Verifier.exe コマンド ラインを使用して、1 つ以上のドライバー機能の不変 MDL チェックをアクティブ化できます。 詳細については、 「ドライバー検証ツール オプションの選択」を参照してください。 不変 MDL のドライバー チェック オプションをアクティブ化または非アクティブ化するには、コンピューターを再起動する必要があります。

スタックの不変 MDL チェック オプションをアクティブにするには、I/O 検証もアクティブにする必要があります。

  • コマンド ラインで

    コマンド ラインでは、ドライバーの不変 MDL Cチェックは、verifier /flags 0x00004000 (Bit 14) で表されます。 ドライバーの不変 MDL チェックをアクティブ化するには、0x00004010 のフラグ値を使用するか、フラグ値に 0x00004010 を追加します。 この値により、I/O 検証 (0x10) とドライバーの不変 MDL チェック (0x00004000) が有効になります。 次に例を示します。

    verifier /flags 0x00004010 /driver MyDriver.sys
    

    この機能は、次の起動時にアクティブになります。

  • ドライバー検証ツール マネージャーの使用

    1. ドライバー検証ツール マネージャーを起動します。 コマンド プロンプト ウィンドウで、検証ツールと入力します。
    2. [カスタム設定の作成 (コード開発者用)] を選択し、[次へ] をクリックします。
    3. 選択 全一覧から [個々の設定を選択] を選択します
    4. [I/O 検証] とドライバーの不変 MDL チェックを選択 (チェック) します。
    5. コンピューターを再起動します。