다음을 통해 공유


버그 검사 0x1: APC_INDEX_MISMATCH

APC_INDEX_MISMATCH 버그 검사의 값은 0x00000001. 버그 검사는 APC(비동기 프로시저 호출) 상태 인덱스가 일치하지 않음을 나타냅니다.

Important

이 문서는 프로그래머를 위한 것입니다. Microsoft 고객이며 컴퓨터에 파란색 화면 오류 코드가 표시되는 경우 파란색 화면 오류 문제 해결을 참조하세요.

APC_INDEX_MISMATCH 매개 변수

매개 변수 설명
1 시스템 함수(시스템 호출) 또는 작업자 루틴의 주소입니다.
2 현재 스레드의 ApcStateIndex 필드 값입니다.
3 현재 스레드 의 CombinedApcDisable 필드 값입니다 . 이 필드는 두 개의 개별 16비트 필드로 구성됩니다. (Thread>SpecialApcDisable<< 16) | Thread>KernelApcDisable.
4 호출 유형:
0 - 시스템 호출
1 - 작업자 루틴

원인

이 버그 검사의 가장 일반적인 원인은 파일 시스템 또는 드라이버가 APC를 사용하지 않도록 설정하고 다시 사용하도록 설정하는 호출 시퀀스가 일치하지 않는 경우입니다. 주요 데이터 항목은 Thread>CombinedApcDisable 필드입니다. CombinedApcDisable 필드는 두 개의 개별 16비트 필드인 SpecialApcDisableKernelApcDisable로 구성됩니다. 두 필드의 음수 값은 드라이버가 특수 또는 일반 APC를 다시 사용하도록 설정하지 않고 비활성화했음을 나타냅니다. 양수 값은 드라이버가 특수 또는 일반 APC를 너무 많이 사용하도록 설정했음을 나타냅니다.

해결

WinDbg를 사용하거나 기본 문제 해결 기술을 사용하여 이 문제를 해결할 수 있습니다.

WinDbg를 사용하여 디버그

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

!apc 확장을 사용하여 하나 이상의 APC 의 콘텐츠를 표시할 수 있습니다.

또한 이 중지 코드 앞에 오는 코드에서 중단점을 설정하고 오류 코드로 한 단계 앞으로 나아갈 수 있습니다.

WinDbg 사용에 대한 자세한 내용은 Windows 디버거(WinDbg)를 사용한 크래시 덤프 분석을 참조하세요.

WinDbg를 사용하지 않고 디버그

Windows 디버거를 사용하여 이 문제를 해결할 준비가 되지 않은 경우:

  • 이벤트 뷰어 시스템 로그에서 이 버그 검사를 유발하는 디바이스 또는 드라이버를 식별하는 데 도움이 될 수 있는 더 많은 오류 메시지를 확인합니다.

  • 버그 확인 메시지에서 드라이버가 식별되면 드라이버를 사용하지 않도록 설정하거나 제조업체에 드라이버 업데이트를 확인합니다.

  • 설치된 새 하드웨어가 설치된 Windows 버전과 호환되는지 확인합니다. 예를 들어 Windows 10 사양에서 필요한 하드웨어에 대한 정보를 가져올 수 있습니다.

보다 일반적인 문제 해결 정보는 버그 검사 블루 스크린 데이터 분석을 참조 하세요.

설명

이 버그 검사는 커널의 내부 오류 결과입니다. 이 오류는 시스템 호출을 종료할 때 발생합니다. 이 버그 검사의 가능한 원인은 보호되거나 중요한 지역을 입력하거나 나가기 위한 시스템 호출 시퀀스가 일치하지 않는 파일 시스템 또는 드라이버입니다. 예를 들어 KeEnterCriticalRegion대한 각 호출에는 KeLeaveCriticalRegion대한 일치하는 호출이 있어야 합니다.

드라이버를 개발하는 경우 Windows 드라이버 키트에서 사용할 수 있는 정적 분석 도구인 정적 드라이버 검증 도구를 사용하여 드라이버를 배송하기 전에 코드에서 문제를 감지할 수 있습니다. CriticalRegions 규칙을 사용하여 정적 드라이버 검증 도구를 실행하여 소스 코드에서 이러한 시스템 호출을 올바른 순서로 사용하는지 확인합니다.

참고 항목

버그 검사 코드 참조