!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.