Share via


버그 검사 0xEA: THREAD_STUCK_IN_DEVICE_DRIVER

THREAD_STUCK_IN_DEVICE_DRIVER 버그 검사 값은 0x000000EA. 이는 디바이스 드라이버의 스레드가 끝없이 회전하고 있음을 나타냅니다.

중요

이 문서는 프로그래머용입니다. 컴퓨터를 사용하는 동안 파란색 화면 오류 코드를 받은 고객인 경우 블루 스크린 오류 문제 해결을 참조하세요.

THREAD_STUCK_IN_DEVICE_DRIVER 매개 변수

매개 변수 설명

1

중단된 스레드 개체에 대한 포인터

2

DEFERRED_WATCHDOG 개체에 대한 포인터

3

잘못된 드라이버 이름에 대한 포인터

4

커널 디버거에서: "가로채는" 버그 검사 0xEA 적중한 횟수

파란색 화면: 1

원인

디바이스 드라이버가 무한 루프에서 회전하며 하드웨어가 유휴 상태가 되기를 기다리고 있습니다.

이는 일반적으로 하드웨어 자체 또는 디바이스 드라이버가 하드웨어를 잘못 프로그래밍하는 데 문제가 있음을 나타냅니다. 이는 잘못된 비디오 카드 또는 잘못된 디스플레이 드라이버의 결과인 경우가 종종 있습니다.

해상도

!analyze 디버그 확장은 버그 검사 대한 정보를 표시하며 근본 원인을 확인하는 데 도움이 될 수 있습니다.

매개 변수 1과 함께 .thread(컨텍스트 등록 설정) 명령을 사용합니다. 그런 다음 kb(Stack Backtrace 표시) 를 사용하여 스레드가 중단된 위치를 찾습니다.

Windows에서 시간 제한 조건을 감지할 때 커널 디버거가 이미 연결되고 실행 중인 경우 그런 다음, KeBugCheckEx 대신 DbgBreakPoint가 호출됩니다. 자세한 메시지가 디버거에 인쇄됩니다. 자세한 내용은 디버그에 출력 보내기를 참조하세요.

이 메시지에는 버그 검사 매개 변수가 포함됩니다. 실제 버그 검사 실행되지 않았기 때문에 .bugcheck(버그 검사 데이터 표시) 명령은 유용하지 않습니다. 32비트 시스템에서 dd watchdog!g_WdBugCheckData L5"를 사용하거나 64비트 시스템에서 dq watchdog!g_WdBugCheckData L5"를 사용하여 Watchdog의 전역 변수에서 4개의 매개 변수를 검색할 수도 있습니다.

이와 같은 대화형 방식으로 이 오류를 디버깅하면 잘못된 스레드를 찾고 중단점을 설정한 다음 g(Go) 를 사용하여 회전 코드로 돌아가서 추가로 디버그할 수 있습니다.

다중 프로세서 머신(OS 빌드 3790 이하)에서 하드웨어 인터럽트로 인해 회전 스레드가 중단되고 버그 검사 때 ISR 또는 DPC 루틴이 실행 중인 경우 시간 초과를 수행할 수 있습니다. 시간 제한 작업 항목은 두 번째 CPU에서 동시에 배달 및 처리할 수 있기 때문입니다. 이 경우 잘못된 스레드의 스택을 자세히 살펴보고 시간 초과가 발생한 회전 코드를 확인해야 합니다. dds(단어 및 기호 표시) 명령을 사용하여 이 작업을 수행합니다.