Поделиться через


!irql

Расширение !irql отображает уровень запроса прерывания (IRQL ) процессора на целевом компьютере перед разрывом отладчика.

!irql [Processor] 

Параметры

Процессор
Задает процессор. Введите номер процессора. Если этот параметр опущен, отладчик отображает IRQL текущего процессора.

DLL-библиотеки

Расширение !irql доступно только в Windows Server 2003 и более поздних версиях Windows.

Windows 2000

Рекомендации недоступны

Windows XP

Рекомендации недоступны

Windows Server 2003 и более поздних версий

Kdexts.dll

Дополнительная информация

Дополнительные сведения об IRQLs см. в документации по комплекту драйверов Windows (WDK) и внутренних компонентах Microsoft Windows Марком Руссиновичем и Дэвидом Соломоном.

Замечания

Когда целевой компьютер прерывается в отладчик, irQL изменяется, но IRQL, действующий непосредственно перед сохранением останова отладчика. Расширение !irql отображает сохраненный IRQL .

Аналогичным образом, когда возникает проверка ошибок и создается файл аварийного дампа, IRQL, сохраненный в файле аварийного дампа, является одним непосредственно перед проверкой ошибок, а не IRQL, с которой была выполнена подпрограмма KeBugCheckEx.

В обоих случаях текущий IRQL вызывается на DISPATCH_LEVEL, за исключением архитектур x86. Таким образом, если возникает несколько таких событий, отображаемый IRQL также будет DISPATCH_LEVEL, что делает его бесполезным для целей отладки.

Расширение !pcr отображает текущий IRQL во всех версиях Windows, но текущий 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]