!arbiter
!arbiter 扩展显示当前的系统资源仲裁程序和仲裁范围。
!arbiter [Flags]
参数
标志
指定显示哪类仲裁程序。 如果省略,将显示所有仲裁程序。 这些位可以自由组合。
位 0 (0x1)
显示 I/O 仲裁程序。
位 1 (0x2)
显示内存仲裁程序。
位 2 (0x4)
显示 IRQ 仲裁程序。
位 3 (0x8)
显示 DMA 仲裁程序。
位 4 (0x10)
显示总线编号仲裁程序。
位 8 (0x100)
不显示别名。
DLL
Kdexts.dll
其他信息
有关此扩展命令的应用,请参阅即插即用调试。
注解
对于每个仲裁程序,!arbiter 显示每个分配的系统资源范围、一些可选标志、附加到该范围的 PDO(换句话说,范围所有者)和此所有者的服务名称(如果已知)。
这些标志具有以下含义:
标记 | 含义 |
---|---|
S |
范围是共享的 |
C |
冲突范围 |
B |
范围是启动分配的 |
D |
范围是驱动程序排他性的 |
A |
范围别名 |
P |
范围正解码 |
以下是示例:
kd> !arbiter 4
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 的服务。 此行上未列出任何标志。
现在,可以将 !devobj 与此 PDO 地址结合使用,以查找设备扩展和设备节点地址:
kd> !devobj 80e52778
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.