カーネル同期遅延ファジー テスト

Note

このチェックは、Windows 10 Build 19042 以降では非推奨になりました

カーネル同期遅延ファジー オプションは、ドライバー内のコンカレンシー バグを検出するのに役立つスレッド スケジュールをランダム化します。

注意: このオプションは、コンピューター上のすべてのドライバー (または大規模なコレクション) を検証する目的では使用できません。 このオプションは、個々のドライバーまたは添付フィルター ドライバーの対象テストを行う場合にのみ使用してください。 多数のドライバーでこのオプションを同時に使用すると、予期しない結果が生じる可能性があり、テスト対象のドライバーとは無関係のコンポーネントでクラッシュが発生する可能性があります。

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

このオプションを選択すると、ドライバー検証ツールはスレッド内のさまざまなポイントにランダムな遅延を挿入します。 Power Framework Delay Fuzzing オプションと同様に、カーネル同期遅延ファジー オプションでは、ドライバー内でエラー検出の可能性を高めるのに役立つアルゴリズムが使用されます。 カーネル同期遅延ファジー テストは、テスト プログラムが数日または数週間に渡り実行される従来のストレス テストを改善し、同時実行で発生する可能性のある問題をキャッチすることが期待されています。

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

ドライバー検証ツール マネージャーまたは Verifier.exe コマンド ラインを使用して、1 つ以上のドライバーのカーネル同期遅延ファジー テスト機能をアクティブ化できます。 詳細については、 「ドライバー検証ツール オプションの選択」を参照してください。 Power Framework Delay Fuzzing オプションをアクティブ化または非アクティブ化するには、コンピューターを再起動する必要があります。

注: カーネル同期遅延ファジー テスト オプションは、さまざまなカーネル API 関数呼び出しでランダム化された遅延を挿入することで、実行時に競合状態が発生する確率を高めます。 これらの遅延をより効果的にするには、他のドライバー検証ツール オプションでこのオプションを有効にします。 遅延が発生する可能性があるため、コンピューターの応答が遅くなることがあります。

  • コマンド ラインで

    コマンド ラインでは、カーネル同期遅延ファジー テストは、検証ツール /flags 0x00800000 (Bit 23) で表されます。 Power Framework Delay Fuzzing をアクティブ化にするには、0x00800000 のフラグ値を使用するか、フラグ値に 0x00800000 を追加します。 次に例を示します。

    verifier /flags 0x00800000 /driver MyDriver.sys
    

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

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

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

カーネル同期遅延ファジー テストのメリット

ほとんどのドライバー ルーチンは、再入可能かつ同時実行が可能です。 コンカレンシーに関連するバグは、検出が難しいことで有名です。 バグには、同期の問題やスレッド間のタイミングの悪さから発生するデッドロックや競合状態も含まれる場合があります。 ストレス テストは、これらのバグを検出するための従来のテスト手法ですが、スピードが遅くコストがかかる場合があり、結果が常に再現可能であるとは限りません。 カーネル同期遅延ファジー テスト オプションは、さまざまなカーネル API 関数呼び出しでランダム化された遅延を挿入することで、実行時に競合状態が発生する確率を高めます。 たとえば、競合状態の結果、ドライバーが取り消された後に IRP にアクセスする場合、カーネル同期遅延ファジー テスト オプションは、ドライバー検証ツールがテスト中にエラーを検出できるようにすることで、この競合状態となる可能性を高めます。 カーネル同期遅延ファジー テスト オプションは、ドライバー検証ツールの能力と有効性を強化します。