Debugging Tools for Windows

!devobj

!devobj 扩展显示DEVICE_OBJECT 对象的详细信息。

语法

!devobj DeviceObject 

参数

DeviceObject
指定设备对象。可以是该结构的16进制地址或者设备名。

DLL

Windows 2000 Kdextx86.dll
Windows XP和之后 Kdexts.dll

注释

如果DeviceObject指定设备名,但是没有提供前缀,则假定使用\Device\前缀。注意命令会在使用表达式求值器之前检查DeviceObject是否是合法的地址或者设备名。

显示的信息中包含对象的设备名、设备的当前IRP的信息、以及设备的队列中挂起的IRP的地址列表。还包含该对象上层的设备对象(作为"AttachedDevice"列出)的信息,以及在该设备下层的信息(在"AttachedTo"中列出)。

可以使用!drvobj!devnode获得设备对象地址。

下面是一个示例:

kd> !devnode
Dumping IopRootDeviceNode (= 0x80e203b8)
DevNode 0x80e203b8 for PDO 0x80e204f8
  Parent 0000000000   Sibling 0000000000   Child 0x80e56dc8
  InstancePath is "HTREE\ROOT\0"
  State = DeviceNodeStarted (0x308)
  Previous State = DeviceNodeEnumerateCompletion (0x30d)
  StateHistory[04] = DeviceNodeEnumerateCompletion (0x30d)
  StateHistory[03] = DeviceNodeStarted (0x308)
  StateHistory[02] = DeviceNodeEnumerateCompletion (0x30d)
  StateHistory[01] = DeviceNodeStarted (0x308)
  StateHistory[00] = DeviceNodeUninitialized (0x301)
  StateHistory[19] = Unknown State (0x0)
  .....
  StateHistory[05] = Unknown State (0x0)
  Flags (0x00000131)  DNF_MADEUP, DNF_ENUMERATED, 
                      DNF_IDS_QUERIED, DNF_NO_RESOURCE_REQUIRED
  DisableableDepends = 11 (from children)

kd> !devobj 80e204f8
Device object (80e204f8) is for:
  \Driver\PnpManager DriverObject 80e20610
Current Irp 00000000 RefCount 0 Type 00000004 Flags 00001000
DevExt 80e205b0 DevObjExt 80e205b8 DevNode 80e203b8 
ExtensionFlags (0000000000)  
Device queue is not busy.

附加信息

查看Plug and Play调试获得该扩展命令的应用。关于设备对象的更多信息,查看Windows Driver Kit (WDK) 文档,以及Mark Russinovich 和David Solomon编写的Microsoft Windows Internals

Build machine: CAPEBUILD