!irql
L'estensione !irql visualizza il livello di richiesta di interrupt (IRQL) di un processore nel computer di destinazione prima dell'interruzione del debugger.
!irql [Processor]
Parametri
Processore
Specifica il processore. Immettere il numero del processore. Se questo parametro viene omesso, il debugger visualizza l'IRQL del processore corrente.
DLL
L'estensione !irql è disponibile solo in Windows Server 2003 e versioni successive di Windows.
Windows 2000 |
Non disponibile |
Windows XP |
Non disponibile |
Windows Server 2003 e versioni successive |
Kdexts.dll |
Informazioni aggiuntive
Per informazioni sugli IRQLs, vedere la documentazione di Windows Driver Kit (WDK) e le informazioni interne di Microsoft Windows di Mark Russinovich e David Solomon.
Osservazioni:
Quando il computer di destinazione si interrompe nel debugger, il runtime di integrazione viene modificato, ma l'IRQL che è stato effettivo subito prima del salvataggio dell'interruzione del debugger. L'estensione !irql visualizza il runtime di integrazione salvato.
Analogamente, quando si verifica un controllo dei bug e viene creato un file di dump di arresto anomalo del sistema, il runtime di integrazione salvato nel file di dump di arresto anomalo del sistema è quello immediatamente prima del controllo del bug, non del runtime irQL in cui è stata eseguita la routine KeBugCheckEx.
In entrambi i casi, il runtime di integrazione corrente viene generato in DISPATCH_LEVEL, ad eccezione delle architetture x86. Pertanto, se si verifica più di un evento di questo tipo, il runtime di integrazione visualizzato sarà anche DISPATCH_LEVEL, rendendolo inutile a scopo di debug.
L'estensione !pcr visualizza l'IRQL corrente in tutte le versioni di Windows, ma il runtime di integrazione corrente non è in genere utile. Il runtime di integrazione esistente poco prima del controllo del bug o della connessione al debugger è più interessante e viene visualizzato solo con !irql.
Se si specifica un numero di processore non valido o si è verificato un danneggiamento del kernel, il debugger visualizza un messaggio "Impossibile ottenere l'indirizzo PRCB".
Ecco un esempio dell'output di questa estensione da un computer x86 a doppio processore:
kd> !irql 0
Debugger saved IRQL for processor 0x0 -- 28 (CLOCK2_LEVEL)
kd> !irql 1
Debugger saved IRQL for processor 0x1 -- 0 (LOW_LEVEL)
Se il debugger è in modalità dettagliata, viene inclusa una descrizione del runtime di integrazione stesso.
Il significato del numero IRQL dipende spesso dal processore. Di seguito è riportato un esempio di processore x64. Si noti che il numero IRQL è uguale a quello dell'esempio precedente, ma il significato di IRQL è diverso:
kd> !irql
Debugger saved IRQL for processor 0x0 -- 12 (SYNCH_LEVEL) [Synchronization level]