버그 검사 0x4000008A: THREAD_TERMINATE_HELD_MUTEX

THREAD_TERMINATE_HELD_MUTEX 버그 검사 값은 0x4000008A. 이는 드라이버가 뮤텍스를 해제하기 전에 종료된 스레드에서 뮤텍스를 획득했음을 나타냅니다. 이는 드라이버가 뮤텍스를 해제하지 않고 사용자 모드로 돌아가거나 드라이버가 뮤텍스를 획득한 다음 실행 중인 스레드가 종료되는 예외를 발생시켜 발생할 수 있습니다.

중요

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

THREAD_TERMINATE_HELD_MUTEX 매개 변수

매개 변수 설명
1 KMUTEX를 소유하는 KTHREAD의 주소입니다.
2 소유한 KMUTEX의 주소입니다.
3 예약됨
4 예약됨

원인

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

조사하려면 호출 스택을 확인합니다. 스택에 시스템 예외 처리 루틴과 스레드 종료 루틴이 바로 뒤에 오는 드라이버가 있는 경우 이 드라이버는 오류 상태이며 커널 뮤텍스를 보유하는 동안 처리되지 않은 예외가 발생하지 않도록 수정해야 합니다. 스택에 일반 스레드 종료 코드가 표시되고 드라이버가 연루되지 않은 경우 !pool 을 실행하거나 뮤텍스 주소(매개 변수 2 )에서 ln(가장 가까운 기호 나열) 을 사용하고 누가 소유하는지 확인할 수 있는지 확인합니다. 이 버그는 거의 확실히 그 뮤텍스의 소유자의 코드에있을 것입니다.