!arbiter
!arbiter拡張機能には、現在のシステム リソース アービターとアービト範囲が表示されます。
!arbiter [Flags]
パラメーター
Flags
表示されるアービターのクラスを指定します。 省略すると、すべてのアービターが表示されます。 これらのビットは自由に組み合わせることができます。
ビット0 (0x1)
I/O アービタを表示します。
ビット 1 (0x2)
メモリ アービターを表示します。
ビット 2 (0x4)
IRQ アービタを表示します。
ビット 3 (0x8)
DMA アービタを表示します。
ビット 4 (0x10)
バス番号アービターを表示します。
ビット 8 (0x100)
エイリアスは表示しません。
DLL
Kdexts.dll
追加情報
この拡張コマンドプラグ アンド プレイアプリケーションのデバッグを参照してください。
解説
各アービターについて、!arbiterは、割り当てられた各システム リソース スコープ、いくつかのオプションのフラグ、そのスコープに接続されている PDO (つまり、スコープ所有者 vi)、およびこの所有者のサービス名 (既知の場合) を示します。
フラグには次の意味があります:
フラグ | 意味 |
---|---|
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のサービスを示します。 この行にはフラグは表示されません。
これで、この PDO アドレスで !devobjを使用して、デバイス拡張機能とデバイス ノード のアドレスを見つけることができます。
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.