!irql

!irql 拡張子は、デバッガーがブレークする前のターゲット コンピューター上のプロセッサの割り込み要求レベル (IRQL) を表示します。

!irql [Processor] 

パラメーター

Processor
プロセッサを指定します。 プロセッサ番号を入力します。 このパラメータを省略した場合、デバッガは現在のプロセッサの IRQL を表示します。

DLL

!irql 拡張子は、Windows Server 2003 以降のバージョンの Windows でのみ使用できます。

Windows 2000

利用不可

Windows XP

設定しています

Windows Server 2003 以降

Kdexts.dll

追加情報

IRQL の詳細については、Windows Driver Kit (WDK) のドキュメントと Microsoft Windows 内部 による マーク・ルシノビッチとデビッド・ソロモン。

解説

ターゲット コンピューターがデバッガーに侵入すると、IRQL は変更されますが、デバッガーが中断される直前に有効だった IRQL は保存されます。 !irql 拡張子は、保存された IRQL を表示します。

同様に、バグ チェックが発生してクラッシュ ダンプ ファイルが作成される場合、クラッシュ ダンプ ファイルに保存される IRQL はバグ チェックの直前のものであり、 KeBugCheckEx ルーチンが実行されたときの IRQL ではありません。

どちらの場合も、x86 アーキテクチャを除き、現在の IRQL は DISPATCH_LEVEL に引き上げられます。 したがって、このようなイベントが複数発生した場合、表示される IRQL も DISPATCH_LEVEL になり、デバッグ目的には役に立たなくなります。

!pcr 拡張子は、Windows のすべてのバージョンで現在の IRQL を表示しますが、現在の IRQL は通常は役に立ちません。 バグ チェックまたはデバッガ接続の直前に存在した IRQL の方が興味深いもので、これは !irql でのみ表示されます。

無効なプロセッサ番号を指定した場合、またはカーネルが破損している場合、デバッガは「PRCB アドレスを取得できません」というメッセージを表示します。

以下は、デュアル プロセッサ x86 コンピューターからのこの拡張機能からの出力の例です。

kd> !irql 0
Debugger saved IRQL for processor 0x0 -- 28 (CLOCK2_LEVEL)

kd> !irql 1
Debugger saved IRQL for processor 0x1 -- 0 (LOW_LEVEL)

デバッガーが冗長モードの場合、IRQL 自体の説明が含まれます。

IRQL 番号の意味はプロセッサによって異なることがよくあります。 以下は x64 プロセッサの例です。 IRQL 番号は前の例と同じですが、IRQL の意味が異なることに注意してください。

kd> !irql
Debugger saved IRQL for processor 0x0 -- 12 (SYNCH_LEVEL) [Synchronization level]