!wudfext.wudfobject

!wudfext.wudfobject 扩展显示有关 WDF 对象及其父关系和子关系的信息。

!wudfext.wudfobject pWDFObject Flags TypeName

参数

pWDFObject
指定要显示相关信息的 WDF 接口的地址。

标记
可选。 指定要显示的信息类型。 Flags 可以是以下位的任何组合。 默认值为 0x01。

位 0 (0x01)
以递归方式逐步完成对象层次结构,以获取显示的父关系和子关系。

位 1 (0x02)
仅显示有关对象的摘要信息。

位 8 (0x80)
以递归方式逐步完成对象层次结构,并显示有关内部框架的详细信息。

TypeName
可选。 指定接口的类型(例如 IWDFDevice)。 如果提供了 TypeName 的值,扩展将使用该值作为接口的类型。 如果提供星号 (*) 作为 TypeName,或者省略 TypeName,则扩展将尝试自动确定所提供接口的类型。

DLL

Wudfext.dll

其他信息

有关详细信息,请参阅用户模式驱动程序框架调试

注解

例如,可以使用 !wudfext.wudfobject 列出 IWDFDevice 对象的子对象,通常包括设备的队列。

还可以使用 !wudfext.wudfobject 查找与特定设备关联的 WDF 对象,以检查 WDF 对象的状态(例如,是否正在删除 WDF 对象),或确定 WDF 对象的当前引用计数。

!wudfext.wudfobject 扩展还显示驱动程序与每个框架对象关联的回调函数和上下文对象,并尝试确定框架对象的类型。 此最后一项功能可能不适用于某些编译器。

下面是一些示例。 在第一个示例中,!wudfext.umdevstacks 提供 0x03050E70 作为设备对象的地址,然后将此地址传递给 !wudfext.wudfobject。 包含 0x1 标志,以显示此对象的所有子级。

0: kd> !umdevstacks 
Number of device stacks: 1
  Device Stack: 0x038f6f08    Pdo Name: \Device\USBPDO-11
    Number of UM devices: 1
    Device 0
      Driver Config Registry Path: WUDFOsrUsbFx2
      UMDriver Image Path: D:\Windows\system32\DRIVERS\UMDF\WUDFOsrUsbFx2.dll
      Fx Driver: IWDFDriver 0x3044ff0
      Fx Device: IWDFDevice 0x3050e70
        IDriverEntry: WUDFOsrUsbFx2!CMyDriver 0x0303eff8
      Open UM files (use !umfile <addr> for details): 
        0x049baf84
      Device XFerMode: CopyImmediately RW: Buffered CTL: Buffered
      Object Tracker Address: 0x00000000
        Object   Tracking OFF
        Refcount Tracking OFF
    DevStack XFerMode: CopyImmediately RW: Buffered CTL: Buffered

0: kd> !wudfobject 0x3050e70 1 
IWDFDevice 0x3050e70 Fx: 0x3050e30 [Ref 2]
  15 Children
    00: IWDFIoTarget 0x3056f90 Fx: 0x3056f50 [Ref 3]
        No Children
    01: <Internal>
    02: <Internal>
    03: <Internal>
    04: IWDFIoQueue 0x305ae98 Fx: 0x305ae58 [Ref 8]
        No Children
    05: IWDFIoQueue 0x305ee98 Fx: 0x305ee58 [Ref 2]
        No Children
    06: IWDFIoQueue 0x3060e98 Fx: 0x3060e58 [Ref 2]
        No Children
    07: IWDFIoTarget 0x3066f80 Fx: 0x3066f40 [Ref 2]
        1 Children
          00: IWDFUsbInterface 0x306efd8 Fx: 0x306ef98 [Ref 1]
              3 Children
                00: IWDFIoTarget 0x3074f70 Fx: 0x3074f30 [Ref 2]
                    2 Children
                      00: IWDFMemory 0x30a4ff0 Fx: 0x30a4fb0 [Ref 2]
                          No Children
                      01: IWDFMemory 0x30aaff0 Fx: 0x30aafb0 [Ref 2]
                          No Children
                01: IWDFIoTarget 0x3078f70 Fx: 0x3078f30 [Ref 1]
                    No Children

下面是显示文件对象的 !wudfext.wudfobject 示例:

kd> !wudfobject 0xf5060 
IWDFFile 0xf5060 Fx: 0xf4fe8 [Ref 1]
  State: Created   Parent: 0xf2f80
  No Children

下面是显示驱动程序对象的 !wudfext.wudfobject 示例:

kd> !wudfobject 0xf2db8 0x01 
IWDFDriver 0xf2db8 Fx: 0xf2d40 [Ref 2]
  Callback: (WUDFEchoDriver!CMyDriver, 0xf2c68)
  State: Created   Parent: 0
  1 Children:
    00: IWDFDevice 0xf2f80 Fx: 0xf2f08 [Ref 2]
        State: Created   Parent: 0xf2db8
        5 Children:
          00: IWDFIoTarget 0xf33c0 Fx: 0xf3348 [Ref 3]
              State: Created   Parent: 0xf2f80
              No Children
          01: IWDFIoQueue 0xf3500 Fx: 0xf3488 [Ref 3]
              State: Created   Parent: 0xf2f80
              No Children
          02: IWDFFile 0xf5060 Fx: 0xf4fe8 [Ref 1]
              State: Created   Parent: 0xf2f80
              No Children
          03: IWDFFile 0xf5100 Fx: 0xf5088 [Ref 101]
              State: Created   Parent: 0xf2f80
              No Children
          04: IWDFFile 0xf51a0 Fx: 0xf5128 [Ref 101]
              State: Created   Parent: 0xf2f80
              No Children