UMDF オブジェクトの表示

UMDF オブジェクトに関する情報を表示するには、次の手順を実行します。

  1. 次のいずれかの UMDF デバッガー拡張機能を使用して、ホスト プロセスのデバイス スタックを表示します。

    • !wudfext.umdevstacks

    • !wudfext.umdevstack の例を以下に示します。

      !wudfext.umdevstack <dev-stack-addr>

      この情報には、ドライバー オブジェクトと各ドライバーのデバイス オブジェクトが含まれています。現在、UMDF で 1 つのホスト プロセスに格納できるデバイス スタックは 1 つだけなので、この 2 つの拡張機能の出力に違いはありません。

  2. 次の例に示すように、!wudfext.wudfobject UMDF デバッガー拡張機能を使用して、完全なオブジェクト ツリーを表示します。

    !wudfext.wudfobject <IWDFDriver*> 1

  3. 次の例に示すように、!wudfext.wudfdevice UMDF デバッガー拡張機能を使用して、デバイスのプラグ アンド プレイ (PnP) と電源管理の状態を確認します。

    !wudfext.wudfdevice <IWDFDevice*>

  4. 次の手順を実行して、デバイスに関連付けられているキューを特定します。

    1. !wudfext.wudfdevicequeues UMDF デバッガー拡張機能を使用して、デバイスに関連付けられているキューを表示します。この拡張機能は、キューのプロパティ、キューの状態、およびドライバーが所有している要求を表示します。

    2. 次の例に示すように、!wudfext.wudfqueue UMDF デバッガー拡張機能を使用して、各キューに関する情報を取得します。

      !wudfext.wudfqueue <IWDFIoQueue*>

  5. !wudfext.wudfrequest UMDF デバッガー拡張機能を使用して、特定の要求に関する情報を取得します。この情報には、基になるユーザー モード I/O 要求パケット (IRP) が含まれます。ユーザー モード IRP の情報から、要求が現在スタックのどこで処理されているかを特定できます。さらに、!wudfext.umirp UMDF デバッガー拡張機能を使用して、そのユーザー モード IRP の情報を取得することもできます。

  6. 次の手順を実行して、すべての I/O ターゲットを特定します。

    1. !wudfext.wudfobject UMDF デバッガー拡張機能を使用して、デバイス オブジェクトの子オブジェクトを表示します。I/O ターゲット オブジェクトは、デバイス オブジェクトの子オブジェクトです。

    2. 次の例に示すように、!wudfext.wudfiotarget UMDF デバッガー拡張機能を使用して、各 I/O ターゲット オブジェクトに関する情報を表示します。

      !wudfext.wudfiotarget <IWDFTarget*>

      この拡張機能は、ターゲットの状態と、送信された要求の一覧を表示します。

    すべての I/O ターゲットを表示できる UMDF デバッガー拡張機能は現在ありません。

  7. 次の UMDF デバッガー拡張機能を使用して、ファイル オブジェクトに関する情報を表示します。

    • !wudfext.wudfrequest or !wudfext.umirp
      UMDF デバッガー拡張機能の !wudfext.wudfrequest または !wudfext.umirp を使用して、デバイス オブジェクトの子オブジェクトであるファイルを表示します。

    • !wudfext.wudffile
      次の例に示すように、!wudfext.wudffile UMDF デバッガー拡張機能を使用して、フレームワーク ファイルに関する情報を表示します。

      !wudfext.wudffile <IWDFFile*>

    • !wudfext.umfile
      次の例に示すように、!wudfext.umfile UMDF デバッガー拡張機能を使用して、UMDF スタック内ファイル (アプリケーションまたは別のスタック内のドライバーによって作成されたファイル オブジェクトではなく、スタック内のドライバーによって作成されたファイル オブジェクト) に関する情報を表示します。

      !wudfext.umfile <addr>

      場合によっては、対応するフレームワーク ファイルがないために、ユーザー モード IRP の情報に UMDF スタック内ファイルが含まれることがあります。

      !wudfext.umfile によって表示される情報には、UMDF スタック内ファイルにキュー登録された IRP が含まれます。それらのファイルにキュー登録されたユーザー モード IRP を追跡するのは、ドライバーによって作成されたファイルだけです。アプリケーションによって作成されたファイルでは、I/O マネージャーがカーネル モード IRP を追跡します。

    • !wudfext.umdevstacks and !wudfext.umdevstack
      UMDF デバッガー拡張機能の !wudfext.umdevstacks および !wudfext.umdevstack の出力を使用して、ドライバーによって作成されたファイルに対応する未処理の UMDF スタック内ファイルを表示します。