次の方法で共有


デバイスの取り外し時に UMDF が未処理ファイルを示す理由の特定

このトピックでは、Wudfext.dll デバッガー拡張機能をユーザーモード ドライバー フレームワーク (UMDF) バージョン 1 または 2 ドライバーと組み合わせて使用して、デバイスを削除するときに UMDF が未処理のファイルがあることを示す理由を特定する方法について説明します。

UMDF バージョン 1 では、wudfext.dll に実装されている拡張機能コマンドを使用します。 UMDF バージョン 2 以降では、wdfkd.dll に実装されている拡張機能コマンドを使用します。

UMDF が未処理のファイルを示す理由を確認するには、次の手順を使用します。

  1. !wudfext.umdevstack (UMDF 1) または !wdfkd.wdfumdevstack (UMDF 2) を使用してデバイス スタックをダンプします。 ダンプには、未処理の UMDF スタック内ファイル (つまり、アプリケーションまたは別のスタック内のドライバーによって作成されたファイル オブジェクトではなく、スタック内のドライバーが作成したファイル オブジェクト) が含まれます。

  2. スタック内ファイルごとに、!wudfext.umfile (UMDF 1) または !wdfkd.wdfumfile (UMDF 2) を実行して、ファイルに関する情報を取得します。

    出力には、保留中の IRP の一覧が含まれます。

  3. !wudfext.umirp (UMDF 1) または !wdfkd.wdfumirp (UMDF 2) を使用して IRP に関する情報を取得することで、各 IRP が未処理である理由を判断します。

    !wudfext.umirp または !wdfkd.wdfumirp の出力から、以下を実行します。

    • IRP が完了したかどうかを確認します。
    • ドライバーによって作成された要求が、ドライバーによって明示的に、またはオブジェクト ツリーによって暗黙的に、削除されなかったかを判断します。