共用方式為


判斷 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!wdfkd.wdfumirp (UMDF 2) 取得 IRP 的相關信息,以判斷每個 IRP 為何未完成。

    從每個 !wudfext.umirp!wdfkd.wdfumirp 的輸出:

    • 請確認 IRP 是否已完成。
    • 確定驅動程式建立的要求是否未被驅動程式明確刪除或未被物件樹狀結構隱含刪除。