!irql

A extensão !irql mostra o nível de solicitação de interrupção (IRQL) de um processador no computador de destino antes da interrupção do depurador.

!irql [Processor] 

Parâmetros

Processador
Especifica o processador. Insira o número do processador. Se este parâmetro for omitido, o depurador mostrará o IRQL do processador atual.

DLL

A extensão !irql só está disponível no Windows Server 2003 e versões posteriores do Windows.

Windows 2000

Indisponível

Windows XP

Indisponível

Windows Server 2003 e posterior

Kdexts.dll

Informações Adicionais

Para obter informações sobre IRQLs, confira a documentação do Kit de Driver do Windows (WDK) e Microsoft Windows Internals de Mark Russinovich e David Solomon.

Comentários

Quando o computador de destino invade o depurador, o IRQL muda, mas o IRQL que estava ativo pouco antes da invasão do depurador é salvo. A extensão !irql mostra o IRQL salvo.

Da mesma forma, quando ocorre uma verificação de bug e é criado um arquivo de despejo de falha, o IRQL salvo no arquivo de despejo de falha é aquele imediatamente anterior à verificação de bug, não o IRQL no qual a rotina KeBugCheckEx foi executada.

Nos dois casos, o IRQL atual é elevado a DISPATCH_LEVEL, exceto em arquiteturas x86. Portanto, se mais de um desses eventos ocorrer, o IRQL exibido também será DISPATCH_LEVEL, tornando-o inútil para depuração.

A extensão !pcr exibe o IRQL atual em todas as versões do Windows, mas o IRQL atual, geralmente, não é útil. O IRQL que existia pouco antes da verificação de bugs ou a conexão do depurador é mais interessante, e isso é exibido somente com !irql.

Se você fornecer um número de processador inválido, ou se houve corrupção do kernel, o depurador mostrará uma mensagem "Não é possível obter o endereço PRCB".

Veja a seguir um exemplo da saída dessa extensão de um computador x86 de processador duplo:

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 o depurador estiver no modo detalhado, uma descrição do IRQL em si será incluída.

O significado do número do IRQL geralmente depende do processador. Veja um exemplo de um processador x64. Observe que o número IRQL é o mesmo do exemplo anterior, mas o significado do IRQL é diferente:

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