次の方法で共有


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

このチェックは、Windows 10 ビルド 19042 以降では非推奨です

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

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

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

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

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

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

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

  • コマンド ラインで

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

    verifier /flags 0x00800000 /driver MyDriver.sys
    

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

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

    1. ドライバー検証ツール マネージャーを起動します。 コマンド プロンプト ウィンドウに 「Verifier 」と入力します。
    2. (コード開発者向けの) [カスタム設定の作成] を選択し、[次へ] をクリックします。
    3. 完全な一覧から [個々の設定を選択] を選択します
    4. カーネル 同期の遅延ファジーを選択 (チェック) します。
    5. コンピューターを再起動します。

カーネル同期の遅延ファジーが発生する理由

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