!arbiter

The !arbiter extension displays the current system resource arbiters and arbitrated ranges.

    !arbiter [Flags] 

Parameters

Flags
Specifies which classes of arbiters are displayed. If omitted, all arbiters are displayed. These bits can be combined freely.

Bit 0 (0x1)
Display I/O arbiters.

Bit 1 (0x2)
Display memory arbiters.

Bit 2 (0x4)
Display IRQ arbiters.

Bit 3 (0x8)
Display DMA arbiters.

Bit 4 (0x10)
Display bus number arbiters.

Bit 8 (0x100)
Do not display aliases.

DLL

Kdexts.dll

Additional Information

See Plug and Play Debugging for applications of this extension command.

Remarks

For each arbiter, !arbiter displays each allocated range of system resources, some optional flags, the PDO attached to that range (in other words, the range's owner), and the service name of this owner (if known).

The flags have the following meanings:

Flag Meaning

S

Range is shared

C

Range in conflict

B

Range is boot-allocated

D

Range is driver-exclusive

A

Range alias

P

Range positive decode

Here is an example:

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 >

In this example, the next-to-last line shows the resource range (which consists of 0x1A3 alone), the PDO of 0x80E52778, and the service of i8042prt.sys. No flags are listed on this line.

You can now use !devobj with this PDO address to find the device extension and device node addresses:

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.