判斷 UMDF 為何在裝置移除時指出未完成的檔案
本主題描述如何使用 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 是否已完成。
- 判斷驅動程式建立的要求是否未由驅動程式明確刪除,或由物件樹狀結構隱含刪除。