檢視 UMDF 物件
警告
UMDF 2 是最新版的 UMDF,並取代 UMDF 1。 所有新的 UMDF 驅動程式都應該使用 UMDF 2 撰寫。 未將新功能新增至 UMDF 1,且較新版本的WINDOWS 10上,UMDF 1 的支援有限。 通用 Windows 驅動程式必須使用 UMDF 2。
封存的 UMDF 1 範例可在Windows 11 22H2 - 2022 年 5 月驅動程式範例更新中找到。
如需詳細資訊,請參閱使用 UMDF 消費者入門。
本主題描述如何使用 Wudfext.dll 偵錯工具延伸模組來檢視 User-Mode Driver Framework (UMDF) 第 1 版驅動程式所使用的物件相關資訊。
從 UMDF 第 2 版開始,您應該改用 Wdfkd.dll 偵錯工具擴充功能。 如需詳細資訊,請參閱 Windows Driver Framework Extensions (Wdfkd.dll) 。
您可以執行下列步驟來檢視 UMDF 第 1 版物件的相關資訊:
使用下列其中一個 UMDF 偵錯工具擴充功能來檢視主機進程中的裝置堆疊:
!wudfext.umdevstacks
!wudfext.umdevstack ,如下列範例所示:
!wudfext.umdevstack < dev-stack-addr>
此資訊包括每個驅動程式的驅動程式物件和裝置物件。 目前,UMDF 只允許主機進程中的一個裝置堆疊,因此這兩個延伸模組的輸出之間沒有任何差異。
使用 !wudfext.wudfobject UMDF 偵錯工具延伸模組來檢視完整的物件樹狀結構,如下列範例所示:
!wudfext.wudfobject < IWDFDriver* > 1
使用!wudfext.wudfdevice UMDF 偵錯工具延伸模組,如下列範例所示,判斷裝置的 隨插即用 (PnP) 和電源管理狀態:
!wudfext.wudfdevice < IWDFDevice*>
執行下列步驟來判斷與裝置相關聯的佇列:
使用 !wudfext.wudfdevicequeues UMDF 偵錯工具擴充功能來檢視與裝置相關聯的佇列。 此延伸模組會顯示佇列屬性、佇列狀態和驅動程式擁有的要求。
使用 !wudfext.wudfqueue UMDF 偵錯工具延伸模組,如下列範例所示,以取得每個佇列的相關資訊:
!wudfext.wudfqueue < IWDFIoQueue*>
使用 !wudfext.wudfrequest UMDF 偵錯工具延伸模組來取得特定要求的相關資訊。 此資訊包括基礎使用者模式 I/O 要求封包 (IRP) 。 從使用者模式 IRP 資訊中,您可以判斷目前在堆疊中處理要求的位置。 您也可以使用 !wudfext.umirp UMDF 偵錯工具延伸模組來取得此使用者模式 IRP 資訊。
判斷所有 I/O 目標,方法是:
使用 !wudfext.wudfobject UMDF 偵錯工具延伸模組來檢視裝置物件的子物件。 I/O 目標物件是裝置物件的子物件。
使用 !wudfext.wudfiotarget UMDF 偵錯工具延伸模組,如下列範例所示,以檢視每個 I/O 目標物件的相關資訊:
!wudfext.wudfiotarget IWDFTarget < *>
此延伸模組會顯示目標的狀態和已傳送的要求清單。
目前沒有任何 UMDF 偵錯工具擴充功能可讓您檢視所有 I/O 目標。
使用下列 UMDF 偵錯工具延伸模組來檢視檔案物件的相關資訊:
!wudfext.wudfrequest 或 !wudfext.umirp
使用 !wudfext.wudfrequest 或 !wudfext.umirp UMDF 偵錯工具延伸模組來檢視屬於裝置物件的子物件檔案。!wudfext.wudffile
使用 !wudfext.wudffile UMDF 偵錯工具延伸模組,如下列範例所示,以檢視架構檔案的相關資訊:!wudfext.wudffile < IWDFFile*>
!wudfext.umfile
使用 !wudfext.umfile UMDF 偵錯工具延伸模組,如下列範例所示,檢視 UMDF 內部堆疊檔案 (的相關資訊,也就是堆疊中驅動程式所建立的檔案物件,而不是應用程式所建立的檔案物件,或由另一個堆疊中的驅動程式所建立的檔案物件) :!wudfext.umfile < addr>
在某些情況下,可能沒有對應的架構檔案,而且使用者模式 IRP 資訊可能包含 UMDF 內部堆疊檔案。
!wudfext.umfile顯示的資訊包含任何排入佇列至 UMDF 內部堆疊檔案的 IRP。 只有驅動程式建立的檔案會追蹤排入佇列至這些檔案的使用者模式 IRP。 針對應用程式建立的檔案,I/O 管理員會追蹤核心模式 IRP。
!wudfext.umdevstacks 和 !wudfext.umdevstack
使用 !wudfext.umdevstacks 和 !wudfext.umdevstack UMDF 偵錯工具延伸模組的輸出,以檢視對應至驅動程式建立檔案的未處理 UMDF 內部堆疊檔案。