Compartir a través de


!irql

La extensión !irql muestra el nivel de solicitud de interrupción (IRQL) de un procesador en el equipo de destino antes de la interrupción del depurador.

!irql [Processor] 

Parámetros

Procesador
Especifica el procesador. Introduzca el número de procesador. Si se omite este parámetro, el depurador muestra el IRQL del procesador actual.

Archivo DLL

La extensión !irql solo está disponible en Windows Server 2003 y versiones posteriores de Windows.

Windows 2000

No disponible

Windows XP

No disponible

Windows Server 2003 y versiones posteriores

Kdexts.dll

Información adicional

Para obtener información sobre los IRQL, consulte la documentación del Kit de controladores de Windows (WDK) y Microsoft Windows Internals de Mark Russinovich y David Solomon.

Comentarios

Cuando el equipo de destino irrumpe en el depurador, el IRQL cambia, pero se guarda el IRQL que estaba vigente justo antes de la irrupción del depurador. La extensión !irql muestra el IRQL guardado.

Del mismo modo, cuando se produce una comprobación de errores y se crea un archivo de volcado de errores, el IRQL guardado en el archivo de volcado de errores es el inmediatamente anterior a la comprobación de errores, no el IRQL en el que se ejecutó la rutina KeBugCheckEx.

En ambos casos, el IRQL actual se eleva a DISPATCH_LEVEL, excepto en arquitecturas x86. Por lo tanto, si se produce más de un evento de este tipo, el IRQL mostrado también será DISPATCH_LEVEL, lo que lo convierte en inútil a efectos de depuración.

La extensión !pcr muestra el IRQL actual en todas las versiones de Windows, pero el IRQL actual no suele ser útil. El IRQL que existía justo antes de la comprobación de errores o de la conexión al depurador es más interesante y solo se muestra con !irql.

Si suministra un número de procesador no válido, o se ha producido una corrupción del kernel, el depurador mostrará el mensaje "Cannot get PRCB address" (No se puede obtener la dirección PRCB).

Este es un ejemplo de la salida de esta extensión de un equipo con procesador dual 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)

Si el depurador está en modo detallado, se incluye una descripción del propio IRQL.

El significado del número IRQL suele depender del procesador. El siguiente es un ejemplo de un procesador x64. Observe que el número IRQL es el mismo que en el ejemplo anterior, pero el significado IRQL es diferente:

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