次の方法で共有


ドライバー パッケージ プロジェクトのドライバーの検証ツール プロパティ

ドライバー検証ツール は、ドライバー テストの有効性を高める実行時検証ツールです。 テスト用にドライバーを展開するときに、すべてのテスト コンピューターで実行するようにドライバー検証ツールを有効にして構成できます。

リモート テスト コンピューターでドライバー検証ツールを有効にする場合は、テスト コンピューターとのカーネル モード デバッグ接続を常に設定する必要があります。 ターゲット コンピューターの構成とデバッグ ケーブルの設定については、「 Windows デバッグの概要」を参照してください。

ドライバー パッケージ プロジェクトのドライバー検証ツールプロパティの設定

  1. ドライバー パッケージのプロパティ ページを開きます。 ソリューション エクスプローラーでドライバー パッケージ プロジェクトを長押し (または右クリック) し、[プロパティ] を選択 します
  2. ドライバー パッケージのプロパティ ページで、[ 構成プロパティ] を選択し、[ ドライバーのインストール] を選択し、[ ドライバーの検証] を選択します。
  3. [ ドライバーの検証を有効にする] オプションを選択します。 このオプションを選択すると、テスト コンピューターで検証するドライバーを選択し、使用する ドライバー検証ツール オプションを選択できます。

プロジェクトの構成とプラットフォーム

構成リストとプラットフォームの一覧を使用すると、プロジェクト構成とプラットフォームの組み合わせごとに異なる展開設定を適用できます。 たとえば、デバッグ ビルドの展開オプションのセットを使用して 1 台のテスト コンピューターにドライバーを展開し、リリース ビルドの展開オプションを使用して別のテスト コンピューターにドライバーを展開できます。

ドライバー検証ツールを有効にする

テスト コンピューターで、コンピューター上のすべてのドライバー、ドライバー プロジェクトのみ、または指定したドライバーの一覧に対して、ドライバー検証ツールを有効にすることができます。 たとえば、特定のデバイスのスタック上のドライバーのセットに対してドライバー検証ツールを有効にすることができます。

ドライバーの確認

テスト コンピューターで検証するドライバーを指定します。

すべてのドライバー
ドライバー検証ツールがリモート テスト コンピューターにインストールされているすべてのドライバーを検証することを指定します。

プロジェクト出力
ドライバー検証ツールがリモート テスト コンピューターにインストールされているドライバー プロジェクトを検証することを指定します。 これが既定のオプションです。

ドライバーの一覧
ドライバー検証ツールがリモート テスト コンピューターで検証するドライバーまたはドライバーの一覧を指定します。 たとえば、特定のデバイスに関連付けられているすべてのドライバーを一覧表示できます。 ドライバーをバイナリ名で指定します (例: Driver.sys)。 ドライバーの一覧を区切る場合は、セミコロンを使用します。 n*.sysなどのワイルドカード値はサポートされていません。

ドライバー検証ツールの標準フラグ

テスト コンピューターで、次のドライバー検証ツール オプションを構成できます。

  • DDI コンプライアンス チェック (Windows 8)

    このオプションがアクティブな場合、ドライバー検証ツールは、ドライバーとオペレーティング システムのカーネル インターフェイス間の適切な相互作用をチェックする一連のデバイス ドライバー インターフェイス (DDI) ルールを適用します。

  • デッドロック検出

    このオプションがアクティブな場合、ドライバー検証ツールは、ドライバーによるスピン ロック、ミューテックス、および高速ミューテックスの使用を監視します。 これにより、ドライバーのコードが、ある時点でデッドロックを引き起こす可能性があるかどうかを検出します。

  • DMA 検証

    このオプションがアクティブな場合、ドライバー検証ツールは、ダイレクト メモリ アクセス (DMA) ルーチンのドライバーの使用を監視します。 これにより、DMA バッファー、アダプター、マップ レジスタの不適切な使用が検出されます。

  • IRQL チェックを強制する

    このオプションがアクティブな場合、ドライバー検証はページング可能なコードを無効にすることにより、ドライバーに極度のメモリ負荷をかけます。 ドライバーが間違った IRQL で、またはスピン ロックを保持しているときにページ メモリにアクセスしようとすると、ドライバー検証はこの動作を検出します。

  • I/O 検証

    このオプションがアクティブな場合、ドライバー検証ツールは特別なプールからドライバーの割り込み要求パケット (IRP) を割り当て、ドライバーの I/O 処理を監視します。 これにより、I/O ルーチンの不正な使用または一貫性のない使用が検出されます。 また、ドライバー検証ツールは、複数の I/O マネージャー ルーチンの呼び出しを監視し、プラグ アンド プレイ (PnP) IRP、電源 IRP、WMI IRP のストレス テストを実行します。

  • その他のチェック

    このオプションがアクティブな場合、ドライバー検証は、解放されたメモリの誤った処理など、ドライバー クラッシュの一般的な原因を探します。

  • プールの追跡

    このオプションがアクティブな場合、ドライバー検証ツールは、ドライバーがアンロードされるときにすべてのメモリ割り当てを解放したかどうかを確認します。 これにより、メモリ リークが明らかになります。

  • セキュリティの検査

    このオプションがアクティブな場合、ドライバー検証は、カーネル モード ルーチンによるユーザー モード アドレスへの参照など、セキュリティの脆弱性を引き起こす可能性のある一般的なエラーを探します。

  • 特別プールの検査

    このオプションがアクティブな場合、ドライバー検証はドライバーのメモリ要求のほとんどを特別なプールから割り当てます。 この特別なプールは、メモリオーバーラン、メモリアンダーラン、そして解放後にアクセスされるメモリを監視します。

ドライバー検証ツールのシナリオ固有の設定

I/O 検証を必要とするドライバー検証ツールのオプション

最初に I/O 検証を有効にする必要がある 4 つのオプションがあります。 I/O 検証が有効になっていない場合、これらのオプションは有効になりません。