動画: UMDFドライバーのデバッグ
このトピックには、ユーザー モード ドライバー フレームワーク (UMDF) ドライバーをデバッグする方法を示す Abhishek Ram による一連の動画が含まれています。
動画を視聴した後は、UMDF デバッガー拡張機能について理解し、基本的なデバッグ シナリオでそれらを使用する方法を理解します。
動画では古いバージョンの Windows で UMDF バージョン 1 ドライバーをデバッグする方法を示していますが、現在のバージョンの Windows で実行されている UMDF バージョン 2 ドライバーでも同じ手法を使用できます。
注意 この動画では、UMDF バージョン 1 ドライバーのデバッグにのみ使用できる Wudfext.dll のデバッガー拡張機能コマンドについて説明します。 UMDF バージョン 2.0 以降の UMDF ドライバーをデバッグするには、代わりに Wdfkd.dll デバッガー拡張機能ライブラリを使用する必要があります。 Wudfext.dll のすべての拡張機能の Wdfkd.dll には同等のものがあります。 詳細については、「Wudfext.dll のデバッガー拡張機能の概要」と「Wdfkd.dll のデバッガー拡張機能の概要」をご参照ください。
UMDF のデバッグの詳細については、「WDF ドライバーのデバッグ」に記載されているトピックをご参照ください。
前提条件
このコンテンツを最大限に活用するには、UMDF と Windows 用デバッグ ツールに関する実用的な知識が必要です。 各セッションは前のセッションに基づいて構築されているため、これらのデモは一覧の順序で表示することをお勧めします。
基本とセットアップ
WDK サンプルと OSR USB-FX2 ラーニング キットの使用について説明します。
この動画では、テスト マシンの準備、Devcon ツールを使用した UMDF エコー サンプル ドライバーのインストール、WdfVerifier を使用した特定の UMDF ドライバーをホストするホスト プロセスの識別、WdfVerifier を使用した初期化コードのデバッグに必要なホスト プロセスのデバッガーへのアタッチなど、UMDF デバッグの基本について説明します。 この動画では、タスク マネージャーで実行中のホスト プロセスを一覧表示し、実行中のドライバーをデバイス マネージャーで表示する方法についても説明します。
デバッガー拡張機能を使用してオブジェクト階層を調べる
このパートでは、UMDF ドライバーのデバッグを開始する方法について説明します。 この動画では、アプリの 3 つのインスタンスがドライバーに読み取り、書き込み、およびデバイス I/O 制御要求を送信するように、OSR USB-FX2 ドライバーのサンプルとアプリケーション サンプルを設定する方法について説明します。 要求が最初にリフレクターに、次にユーザー モード ドライバーのホスト プロセスにどのように流れるかを確認します。 この動画では、FX2 ドライバー サンプルの WDF オブジェクト階層について説明し、次の UMDF デバッガー拡張機能を使用して UMDF オブジェクト階層を走査する方法について説明します。
UMDF 2 については、!wdfkd.wdfumdevstacksなどの「Wdfkd.dllのデバッガー拡張機能の概要」をご参照ください。
フレームワーク USB オブジェクトへのアクセス
ここでは、ドライバーのフレームワーク USB オブジェクトを調べる方法について説明します。 これを行うには、WDF オブジェクトを移動し、USB パイプ オブジェクト、USB インターフェイス オブジェクト、USB I/O ターゲット オブジェクトに到達します。
I/O 要求とキュー
この動画では、デバッガーを使用して、ドライバーのフレームワーク I/O 要求オブジェクトとフレームワーク キュー オブジェクトを調べます。
ファイル オブジェクトとコールバック オブジェクト
このパートでは、フレームワーク ファイル オブジェクトとドライバーのコールバック オブジェクトを調べる方法について説明します。
UMDF ドライバーによって送信された I/O 要求の追跡
ここでは、アプリ検証ツールを使用してデバッグする方法について説明します。 また、ドライバー初期化コードをデバッグする方法と、UMDF ドライバーからカーネル スタックに送信された要求を追跡する方法についても説明します。
ドライバーが I/O 要求を完了しない
最後の動画では、UMDF ドライバーが受信した要求を完了しなかった場合のケースを調査し、フレームワークのオブジェクト追跡機能と参照追跡機能について学習します。