このトピックでは、Wudfext.dll デバッガー拡張機能を User-Mode Driver Framework (UMDF) バージョン 1 または 2 ドライバーと組み合わせて使用して、デバイスを削除するときに未処理のファイルがあることを UMDF が示す理由を特定する方法について説明します。
UMDF バージョン 1 では、wudfext.dllで実装されている拡張機能コマンドを使用します。 UMDF バージョン 2 以降では、wdfkd.dllで実装されている拡張機能コマンドを使用します。
UMDF が未処理のファイルを示す理由を確認するには、次の手順を使用します。
!wudfext.umdevstack (UMDF 1) または !wdfkd.wdfumdevstack (UMDF 2) を使用してデバイス スタックをダンプします。 ダンプには、未処理の UMDF スタック内ファイル (つまり、アプリケーションまたは別のスタック内のドライバーによって作成されたファイル オブジェクトではなく、スタック内のドライバーが作成したファイル オブジェクト) が含まれます。
スタック内ファイルごとに、 !wudfext.umfile (UMDF 1) または !wdfkd.wdfumfile (UMDF 2) を実行して、ファイルに関する情報を取得します。
出力には、保留中の IRP の一覧が含まれます。
!wudfext.umirp (UMDF 1) または !wdfkd.wdfumirp (UMDF 2) を使用して IRP に関する情報を取得することで、各 IRP が未処理である理由を決定します。
各 !wudfext.umirp または !wdfkd.wdfumirp の出力から:
- IRP が完了したかどうかを確認します。
- ドライバーによって作成された要求が、ドライバーによって明示的に削除されなかったか、オブジェクト ツリーによって暗黙的に削除されなかったかを判断します。