다음을 통해 공유


!irql

!irql 확장은 디버거 중단 전에 대상 컴퓨터에서 프로세서의 IRQL(인터럽트 요청 수준)을 표시합니다.

!irql [Processor] 

매개 변수

프로세서
프로세서를 지정합니다. 프로세서 번호를 입력합니다. 이 매개 변수를 생략하면 디버거는 현재 프로세서의 IRQL을 표시합니다.

DLL

!irql 확장은 Windows Server 2003 이상 버전의 Windows에서만 사용할 수 있습니다.

Windows 2000

Unavailable

Windows XP

Unavailable

Windows Server 2003 이상

Kdexts.dll

추가 정보

IRQL에 대한 자세한 내용은 WDK(Windows 드라이버 키트) 설명서 및 Mark Russinovich 및 David Solomon의 Microsoft Windows 내부 문서를 참조하세요.

설명

대상 컴퓨터가 디버거에 침입하면 IRQL이 변경되지만 디버거 중단이 저장되기 직전에 유효했던 IRQL이 변경됩니다. !irql 확장은 저장된 IRQL을 표시합니다.

마찬가지로 버그 검사가 발생하고 크래시 덤프 파일이 만들어지면 크래시 덤프 파일에 저장된 IRQL은 KeBugCheckEx 루틴이 실행된 IRQL이 아니라 버그 검사 바로 전에 저장됩니다.

두 경우 모두 x86 아키텍처를 제외하고 현재 IRQL이 DISPATCH_LEVEL 발생합니다. 따라서 이러한 이벤트가 두 개 이상 발생하면 표시되는 IRQL도 DISPATCH_LEVEL 디버깅 용도로는 쓸모가 없습니다.

!pcr 확장은 모든 버전의 Windows에서 현재 IRQL을 표시하지만 현재 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]