Power Framework 遅延ファジー テスト

Note

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

Power Framework Delay Fuzzing オプションは、スレッド スケジュールをランダム化し、電源管理フレームワーク (PoFx) を使用するドライバーの同時実行バグの検出に役立ちます。 このオプションは、電源管理フレームワーク (PoFx) を直接利用しないドライバーには推奨されません。

このオプションは、Windows 8 以降で利用可能です。

このオプションが選択されると、Driver Verifier はスレッド内のさまざまなポイントにランダムな遅延を挿入します。 Power Framework Delay Fuzzing オプションは、ドライバー内のエラーを検出するための確率的保証を提供するアルゴリズムを使用します。 Power Framework Delay Fuzzing は、同時実行で発生する可能性のある問題を検出するために、テスト プログラムを数日または数週間実行する従来のストレス テストを改善します。

ほとんどのドライバー ルーチンは再入可能であり、同時実行可能です。 同時実行性のバグは見つけるのが難しいことで知られています。 バグには、同期の問題やスレッド間のタイミング不良によって引き起こされるデッドロックや競合状態が含まれる場合があります。 ストレス テストは従来のテスト手法ですが、時間がかかり、コストがかかる場合があり、結果が常に再現できるとは限りません。 Power Framework Delay Fuzzing オプションは、さまざまな Power API 関数呼び出しにランダム化された遅延を挿入することにより、実行時に競合状態が発生する可能性を高めます。 たとえば、競合状態により、キャンセルされた後にドライバーが IRP にアクセスする場合、Power Framework Delay Fuzzing オプションを使用すると、Driver Verifier がテスト中にエラーを検出できるように、この競合状態が発生する可能性が高まります。 Power Framework Delay Fuzzing オプションは、Driver Verifier の能力と有用性を拡張します。

このオプションを有効にする

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

Power Framework Delay Fuzzing オプションは、さまざまな Power API 関数呼び出しにランダム化された遅延を挿入することにより、実行時に競合状態が発生する可能性を高めます。 これらの遅延をより効果的にするには、他の Driver Verifier オプションとともにこのオプションを有効にすることができます。 遅延が発生する可能性があるため、コンピューターの応答が遅くなることが予想されます。

  • コマンドラインで

    コマンド ラインでは、Power Framework Delay Fuzzing は Verifier /flags 0x00008000 (ビット 15) で表されます。 Power Framework Delay Fuzzing をアクティブにするには、フラグ値 0x00008000 を使用するか、フラグ値に 0x00008000 を追加します。 次に例を示します。

    verifier /flags 0x00008000 /driver MyDriver.sys
    

    この機能は次回の起動後に有効になります。

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

    1. ドライバー検証マネージャーを起動します。 コマンド プロンプト ウィンドウに「Verifier」と入力します。
    2. 「カスタム設定の作成 (コード開発者用)」を選択し、「次へ」をクリックします。
    3. [完全なリストから個別の設定を選択] を選択します。
    4. [Power Framework Delay Fuzzing] を選択 (チェック) します。
    5. コンピューターを再起動します。