共用方式為


判斷 UMDF 為何在裝置移除時指出未完成的檔案

本主題描述如何使用 Wudfext.dll 偵錯工具延伸模組搭配 User-Mode Driver Framework (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 是否已完成。
    • 判斷驅動程式建立的要求是否未由驅動程式明確刪除,或由物件樹狀結構隱含刪除。