!irql
Die Erweiterung !irql zeigt den Interrupt-Request-Level (IRQL) eines Prozessors auf dem Zielcomputer vor der Debugger-Pause an.
!irql [Processor]
Parameter
Prozessor
Gibt den Prozessor an. Geben Sie die Prozessornummer ein. Wenn dieser Parameter weggelassen wird, zeigt der Debugger den IRQL des aktuellen Prozessors an.
DLL
Die Erweiterung !irql ist nur in Windows Server 2003 und späteren Versionen von Windows verfügbar.
Windows 2000 |
Nicht verfügbar |
Windows XP |
Nicht verfügbar |
Windows Server 2003 und höher |
Kdexts.dll |
Zusätzliche Informationen
Informationen über IRQLs finden Sie in der Windows Driver Kit (WDK) Dokumentation und unter Microsoft Windows Internals von Mark Russinovich und David Solomon.
Hinweise
Wenn der Zielcomputer in den Debugger wechselt, ändert sich der IRQL, aber der IRQL, der kurz vor dem Debuggerwechsel gültig war, wird gespeichert. Die Erweiterung !irql zeigt den gespeicherten IRQL an.
Wenn eine Fehlerprüfung auftritt und eine Absturzabbilddatei erstellt wird, ist der in der Absturzabbilddatei gespeicherte IRQL derjenige unmittelbar vor der Fehlerprüfung, nicht der IRQL, bei dem die Routine KeBugCheckEx ausgeführt wurde.
In beiden Fällen wird der aktuelle IRQL auf DISPATCH_LEVEL angehoben, außer auf x86-Architekturen. Wenn also mehr als ein solches Ereignis auftritt, wird der angezeigte IRQL auch DISPATCH_LEVEL sein, was ihn für Debugging-Zwecke unbrauchbar macht.
Die Erweiterung !pcr zeigt den aktuellen IRQL auf allen Versionen von Windows an, aber der aktuelle IRQL ist normalerweise nicht nützlich. Interessanter ist der IRQL, der kurz vor der Fehlerprüfung oder Debugger-Verbindung bestand, und dieser wird nur mit !irql angezeigt.
Wenn Sie eine ungültige Prozessornummer angeben oder der Kernel beschädigt wurde, zeigt der Debugger die Meldung „Cannot get PRCB address“ an.
Hier ist ein Beispiel für die Ausgabe dieser Erweiterung auf einem x86-Computer mit zwei Prozessoren:
kd> !irql 0
Debugger saved IRQL for processor 0x0 -- 28 (CLOCK2_LEVEL)
kd> !irql 1
Debugger saved IRQL for processor 0x1 -- 0 (LOW_LEVEL)
Befindet sich der Debugger im ausführlichen Modus, ist eine Beschreibung des IRQL selbst enthalten.
Die Bedeutung der IRQL-Nummer hängt oft vom Prozessor ab. Hier ist ein Beispiel von einem x64-Prozessor. Beachten Sie, dass die IRQL-Nummer dieselbe ist wie im vorherigen Beispiel, aber die IRQL-Bedeutung ist anders:
kd> !irql
Debugger saved IRQL for processor 0x0 -- 12 (SYNCH_LEVEL) [Synchronization level]