Debugging Tools for Windows |
!arbiter 扩展显示当前的system resource arbiter和arbitrated range。
Windows 2000 | Kdextx86.dll |
Windows XP和之后 | Kdexts.dll |
对每个arbiter,!arbiter会显示系统资源每个已分配的范围,一些可选标志、附加到该范围的PDO(即该范围的所有者)、以及该所有者得服务名(如果已知的话)。
标志的意义如下:
标志 | 意义 |
---|---|
S | 区域被共享 |
C | 区域有冲突(conflict) |
B | 区域是boot-allocated的 |
D | 区域是driver-exclusive的 |
A | 区域别名(alias) |
P | Range positive decode |
下面是一个例子:
DEVNODE 80e203b8 (HTREE\ROOT\0)
Interrupt Arbiter "" at 80167140
Allocated ranges:
0000000000000000 - 0000000000000000 B 80e1d3d8
0000000000000001 - 0000000000000001 B 80e1d3d8
.....
00000000000001a2 - 00000000000001a2
00000000000001a2 - 00000000000001a2 CB 80e1d3d8
00000000000001a2 - 00000000000001a2 CB 80e52538 (Serial)
00000000000001a3 - 00000000000001a3 80e52778 (i8042prt)
00000000000001b3 - 00000000000001b3 80e1b618 (i8042prt)
Possible allocation:
< none >
这个例子中, 倒数第二行显示了资源范围(只由0x1A3组成)、0x80E52778的PDO、服务为i8042prt.sys。这一行没有列出标志。
现在可以对PDO地址使用!devobj来找到设备扩展(device extension)和设备节点(device node)的地址:
Device object (80e52778) is for:
00000034 \Driver\PnpManager DriverObject 80e20610
Current Irp 00000000 RefCount 1 Type 00000004 Flags 00001040
DevExt 80e52830 DevObjExt 80e52838 DevNode 80e52628
ExtensionFlags (0000000000)
AttachedDevice (Upper) 80d78b28 \Driver\i8042prt
Device queue is not busy.
查看Plug and Play调试获得该扩展命令的应用。