다음을 통해 공유


버그 검사 0xC2: BAD_POOL_CALLER

BAD_POOL_CALLER 버그 검사 값은 0x000000C2. 이는 현재 스레드가 잘못된 풀 요청을 하고 있음을 나타냅니다.

중요

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

BAD_POOL_CALLER 매개 변수

매개 변수 1 은 위반 유형을 나타냅니다.

매개 변수 1 매개 변수 2 매개 변수 3 매개 변수 4 오류 원인

0x00

0

풀 유형

풀 태그

현재 스레드는 0 바이트 풀 할당을 요청했습니다.

0x01

0x02

0x04

풀 헤더에 대한 포인터

풀 헤더 콘텐츠의 첫 번째 부분

0

풀 헤더가 손상되었습니다.

0x06

예약됨

풀 헤더에 대한 포인터

풀 헤더 내용

현재 스레드는 이미 해제된 풀을 해제하려고 했습니다.

0x07

예약됨

풀 헤더 내용

해제되는 풀 블록의 주소

현재 스레드는 이미 해제된 풀을 해제하려고 했습니다.

0x08

현재 IRQL

풀 유형

할당 크기(바이트)

현재 스레드가 잘못된 IRQL에서 풀을 할당하려고 했습니다.

0x09

현재 IRQL

풀 유형

풀 주소

현재 스레드가 잘못된 IRQL에서 풀을 해제하려고 했습니다.

0x0A

풀 주소

할당자의 태그

시도된 무료에서 사용되는 태그

현재 스레드가 잘못된 태그를 사용하여 풀 메모리를 해제하려고 했습니다.

(메모리가 다른 구성 요소에 속할 수 있습니다.)

0x0B

0x0C

또는 0x0D

풀 주소

풀 할당의 태그

잘못된 할당량 프로세스 포인터

현재 스레드가 손상된 풀 할당에 대한 할당량을 해제하려고 했습니다.

0x40

시작 주소

시스템 주소 공간의 시작

0

현재 스레드가 사용자 모드 주소에서 커널 풀을 해제하려고 했습니다.

0x41

시작 주소

실제 페이지 프레임

가장 높은 실제 페이지 프레임

현재 스레드가 할당되지 않은 할당되지 않은 풀 주소를 해제하려고 했습니다.

0x42

또는 0x43

해제되는 주소

0

0

현재 스레드는 풀에 없는 가상 주소를 해제하려고 했습니다.

0x44

시작 주소

예약됨

0

현재 스레드가 할당되지 않은 할당되지 않은 풀 주소를 해제하려고 했습니다.

0x46

시작 주소

0

0

현재 스레드가 잘못된 풀 주소를 해제하려고 했습니다.

0x47

시작 주소

실제 페이지 프레임

가장 높은 실제 페이지 프레임

현재 스레드가 할당되지 않은 할당되지 않은 풀 주소를 해제하려고 했습니다.

0x48

시작 주소

예약됨

예약됨

현재 스레드가 할당되지 않은 페이징 풀 주소를 해제하려고 했습니다.

0x50

시작 주소

페이지 단위 풀의 시작부터 오프셋 시작(페이지 단위)

페이징된 풀의 크기(바이트)

현재 스레드가 할당되지 않은 페이징 풀 주소를 해제하려고 했습니다.

0x60

시작 주소

0

0

현재 스레드가 잘못된 연속 메모리 주소를 해제하려고 했습니다.

(MmFreeContiguousMemory의 호출자가 잘못된 포인터를 전달하고 있습니다.)

0x99

해제되는 주소

0

0

현재 스레드가 잘못된 주소로 풀을 해제하려고 했습니다.

(이 코드는 풀 헤더의 손상을 나타낼 수도 있습니다.)

0x9A

풀 유형

요청된 바이트 수

풀 태그

현재 스레드는 할당 요청 MUST_SUCCEED 표시했습니다.

(이 풀 유형은 더 이상 지원되지 않습니다.)

0x9B

풀 유형

요청된 바이트 수

호출자의 주소

현재 스레드가 태그가 0인 풀을 할당하려고 했습니다.

추적할 수 없으며 기존 태그 테이블이 손상될 수 있습니다.

0x9C

풀 유형

요청된 바이트 수

호출자의 주소

현재 스레드가 "BIG" 태그가 있는 풀을 할당하려고 했습니다.

추적할 수 없으며 기존 태그 테이블이 손상될 수 있습니다.

0x9D

잘못된 풀 태그 사용

풀 유형

호출자의 주소

현재 스레드는 문자나 숫자가 포함되지 않은 태그가 있는 풀을 할당하려고 했습니다. 이러한 태그를 사용하면 풀 문제를 추적하기가 어렵습니다.

0x41286

예약됨

예약됨

페이지 단위 풀의 시작 부분부터 시작 오프셋(페이지)

현재 스레드가 할당 중간에 페이징된 풀 주소를 해제하려고 했습니다.

_POOL_TYPE 코드는 Ntddk.h에 열거됩니다. 특히 0은 비페이지 풀을 나타내고 1은 페이징 풀을 나타냅니다.

원인

현재 스레드에서 잘못된 풀 요청이 발생했습니다. 일반적으로 이는 잘못된 IRQL 수준이거나 동일한 메모리 할당을 두 번 해제하는 등입니다.

해결 방법

메모리 풀 옵션을 사용하도록 설정된 드라이버 검증 도구를 활성화하여 이러한 오류에 대한 자세한 정보를 얻고 결함이 있는 드라이버를 찾습니다.

드라이버 검증 도구

드라이버 검증 도구는 드라이버의 동작을 검사하기 위해 실시간으로 실행되는 도구입니다. 드라이버 코드 실행에 오류가 표시되면 드라이버 코드의 해당 부분을 추가로 조사할 수 있도록 예외를 사전에 만듭니다. 드라이버 검증 도구 관리자는 Windows에 기본 제공되며 모든 Windows PC에서 사용할 수 있습니다. 드라이버 검증 도구 관리자를 시작하려면 명령 프롬프트에서 검증 도구를 입력합니다. 확인하려는 드라이버를 구성할 수 있습니다. 드라이버를 확인하는 코드는 실행할 때 오버헤드를 추가하므로 가능한 한 적은 수의 드라이버를 시도하고 확인합니다. 자세한 내용은 드라이버 검증 도구를 참조하세요.

Windows 메모리 진단

특히 메모리 풀이 손상된 경우 Windows 메모리 진단 도구를 실행하여 물리적 메모리를 원인으로 격리합니다. 제어판 검색 상자에 메모리를 입력한 다음 컴퓨터의 메모리 문제 진단을 선택합니다. 테스트를 실행한 후 이벤트 뷰어를 사용하여 시스템 로그 아래에서 결과를 확인합니다. MemoryDiagnostics-Results 항목을 찾아 결과를 확인합니다.