버그 검사 0xF: SPIN_LOCK_ALREADY_OWNED

SPIN_LOCK_ALREADY_OWNED 버그 검사 값은 0x0000000F. 이는 스핀 잠금이 이미 소유되었을 때 스핀 잠금에 대한 요청이 시작되었음을 나타냅니다.

중요

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

SPIN_LOCK_ALREADY_OWNED 매개 변수

없음

원인

일반적으로 이 오류는 스핀 잠금에 대한 재귀 요청으로 인해 발생합니다. 스핀 잠금에 대한 재귀 요청과 유사한 항목이 시작된 경우에도 발생할 수 있습니다. 예를 들어 스레드에서 스핀 잠금을 획득한 다음 동일한 스레드가 스핀 잠금을 획득하려고 시도하는 함수를 호출하는 경우에도 발생할 수 있습니다. 스핀 잠금을 획득하는 두 번째 시도는 복구할 수 없는 교착 상태가 발생하므로 이 경우 차단되지 않습니다. 둘 이상의 프로세서에서 호출이 수행되면 다른 프로세서가 잠금을 해제할 때까지 하나의 프로세서가 차단됩니다.

이 오류는 모든 스레드와 모든 스핀 잠금에 IRQL이 할당될 때 명시적 재귀 없이 발생할 수도 있습니다. 스핀 잠금 IRQL은 항상 DPC 수준보다 크거나 같지만 스레드의 경우에는 그렇지 않습니다. 그러나 스핀 잠금을 보유하는 스레드는 스핀 잠금보다 크거나 같은 IRQL을 유지해야 합니다. 스레드 IRQL을 보유하고 있는 스핀 잠금의 IRQL 수준 아래로 줄이면 프로세서에서 다른 스레드를 예약할 수 있습니다. 그러면 이 새 스레드가 동일한 스핀 잠금을 획득하려고 시도할 수 있습니다.

해결 방법

잠금을 재귀적으로 획득하지 않는지 확인합니다. 그리고 스핀 잠금을 보유하는 스레드의 경우 스레드 IRQL을 보유하고 있는 스핀 잠금의 IRQL 아래 수준으로 줄이지 않는지 확인합니다.