フレームワークの検証ツールの使用

フレームワークには、ドライバーの実行中に使用できるコード検証ツールが用意されています。この検証ツールは、ドライバーの状態や、ドライバーがフレームワーク オブジェクト メソッドに渡す引数を、広範囲にわたって検証します。フレームワークの検証ツールは、単体で使用することも、汎用の Driver Verifier ツールと組み合わせて使用することもできます。

ドライバーが Version 1.9 以降のフレームワークを使用してビルドされている場合、フレームワークの検証ツールは次の状況で実行されます。

  • 既定では、Driver Verifier ツールを実行すると、同時にフレームワークの検証ツールも自動的に実行されます。

  • ドライバーに対して VerifierOn レジストリ値を作成し、これを 0 以外の値に設定している場合、ドライバーを実行すると必ずフレームワークの検証ツールが実行されます。

  • ドライバーに対して VerifierOn レジストリ値を作成し、これを 0 に設定している場合、ドライバーの実行時にフレームワークの検証ツールが実行されることはありません。

ドライバーが Version 1.9 よりも前のバージョンのフレームワークを使用してビルドされている場合、VerifierOn レジストリ値を作成し、これを 0 以外の値に設定している場合にのみ、フレームワークの検証ツールが実行されます。Driver Verifier ツールの実行時にフレームワークの検証ツールが自動的に実行されることはありません。

フレームワークの検証ツールの使用時には、次のレジストリ値が検証ツールの動作を制御します。

  • VerifyOn
    0 以外の値に設定すると、WDFVERIFY マクロが有効になります。

  • DbgBreakOnError
    0 以外の値に設定すると、ドライバーが WdfVerifierDbgBreakPoint を呼び出すたびに、 フレームワークがデバッガー (使用できる場合) に割り込みを行います。

  • VerifierAllocateFailCount
    n に設定すると、ドライバーのオブジェクトに対する n 回目のメモリ割り当ての後に試行される同オブジェクトへのメモリ割り当てが、すべてエラーになります。

  • TrackHandles
    フレームワーク オブジェクト ハンドルの 1 つ以上の型名のリストに設定すると、フレームワークは、指定されたハンドル型と一致するすべてのオブジェクト ハンドルへの参照をトラックします。

  • EnhancedVerifierOptions
    フレームワークの検証ツールのオプション機能を有効にするために使用するビットマップを格納します。

  • VerifyDownLevel (DWORD)
    0 以外の値に設定されており、ドライバーが現在のバージョンよりも前のバージョンのフレームワークを使用してビルドされている場合、フレームワークの検証ツールは、ドライバーのビルド時以降に追加されたテストを追加で実行します。

 

これらのレジストリ値の詳細については、「フレームワークベースのドライバーをデバッグするためのレジストリ値」を参照してください。

これらのレジストリ値を自動的に制御してコード検証ツールを使用する方法の詳細については、「WDF Verifier コントロール アプリケーション」(英語の可能性あり) を参照してください。