!devobj

!devobj 拡張機能には、DEVICE_OBJECT構造体に関する詳細情報が表示されます。

!devobj DeviceObject 

パラメーター

DeviceObject
デバイスオブジェクトを指定します。 この構造体の 16 進数アドレスまたはデバイスの名前を指定できます。

DLL

Kdexts.dll

追加情報

この拡張コマンドの例と応用については、プラグ アンド プレイのデバッグを参照してください。 デバイス オブジェクトの詳細については、Windows Driver Kit (WDK) のドキュメントと、Mark Russinovich および David Solomon による Microsoft Windows Internalsを参照してください。

解説

DeviceObjectがデバイスの名前を指定してもプレフィックスを指定しない場合は、プレフィックス "\Device\" が想定されます。 このコマンドは、式エバリュエーターを使用する前に、DeviceObjectが有効なアドレスまたはデバイス名であるかどうかを確認チェック。

表示される情報には、オブジェクトのデバイス名、デバイスの現在の IRP に関する情報、およびデバイスのキュー内の保留中の IRP のアドレスの一覧が含まれます。 また、このオブジェクトの上に重ねられたデバイス オブジェクト ("AttachedDevice" と表示されます) と、このオブジェクトの下に階層化されたオブジェクト ("AttachedTo" と表示) に関する情報も含まれます。

デバイス オブジェクトのアドレスは、!drvobjまたは!devnode 拡張機能を使用して取得できます。

1 つの例を次に示します。

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.