다음을 통해 공유


버그 검사 0x19: BAD_POOL_HEADER

BAD_POOL_HEADER 버그 검사의 값은 0x00000019. 이는 풀 헤더가 손상되었음을 나타냅니다.

Important

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

BAD_POOL_HEADER 매개 변수

매개 변수 1은 위반 유형을 나타냅니다. 다른 매개 변수의 의미는 매개 변수 1의 값에 따라 달라집니다.

매개 변수 1입니다. 매개 변수 2 매개 변수 3 매개 변수 4 오류 원인

0x2

검사 중인 풀 항목

풀 블록의 크기

0

특수 풀 패턴 검사가 실패했습니다.

(소유자가 풀 블록을 손상했을 수 있습니다.)

0x3

검사 중인 풀 항목

읽기-뒤로 flink freelist 값

읽기-뒤로 깜박임 자유 목록 값

풀 자유 목록이 손상되었습니다.

(정상 목록에서 매개 변수 2, 3 및 4의 값은 동일해야 합니다.)

0x5

풀 항목 중 하나

예약됨

다른 풀 항목

인접한 풀 항목 쌍에는 서로 모순되는 헤더가 있습니다. 그 중 하나 이상이 손상되었습니다.

0x6

잘못 계산된 항목 1개

예약됨

잘못된 계산을 발생시킨 잘못된 항목입니다.

풀 블록 헤더의 이전 크기가 너무 큽합니다.

0x7

0

예약됨

잘못된 풀 항목

풀 블록 헤더 크기가 손상되었습니다.

0x8

0

예약됨

잘못된 풀 항목

풀 블록 헤더 크기는 0입니다.

0x9

잘못 계산된 항목 1개

예약됨

잘못된 계산을 발생시킨 잘못된 항목입니다.

풀 블록 헤더 크기가 손상되었습니다(너무 큽니다).

0xA

찾어야 하는 풀 항목

예약됨

풀 항목을 포함해야 하는 페이지의 가상 주소

풀 블록 헤더 크기가 손상되었습니다.

0xD, 0xE, 0xF, 0x23, 0x24, 0x25

예약됨

예약됨

예약됨

해제된 블록의 풀 헤더가 해제된 후 수정되었습니다. 이는 일반적으로 해제된 블록의 이전 소유자의 잘못이 아닙니다. 대신 해제된 블록 앞에 있는 블록이 오버런되기 때문에 일반적으로(항상 그런 것은 아님) 발생합니다.

0x20

찾어야 하는 풀 항목

다음 풀 항목

예약됨

풀 블록 헤더 크기가 손상되었습니다.

0X21

해제되는 풀 포인터

풀 블록에 할당된 바이트 수

풀 블록 다음에 있는 손상된 값

풀 블록이 해제된 다음 데이터가 손상되었습니다. 이는 일반적으로 소비자(호출 스택)가 블록을 오버런했음을 의미합니다.

0X22

해제되는 주소

예약됨

예약됨

해제되는 주소에는 추적 항목이 없습니다. 이는 일반적으로 호출 스택이 이미 해제되었거나 시작하기 위해 할당되지 않은 포인터를 해제하려고 하기 때문입니다.

원인

현재 요청 시 풀이 이미 손상되었습니다.

이는 호출자 때문일 수도 있으며 그렇지 않을 수도 있습니다.

해결

문제의 가능한 원인을 파악하려면 커널 디버거를 사용하여 내부 풀 링크를 안내해야 합니다.

그런 다음, 용의자 풀 태그에 특수 풀을 사용하거나 용의자 드라이버에서 드라이버 검증 도구 "특수 풀" 옵션을 사용할 수 있습니다. !analyze 확장은 용의자 드라이버를 정확히 찾아내는 데 도움이 될 수 있지만 풀 손상자의 경우는 그렇지 않은 경우가 많습니다.

버그 검사 블루 스크린 데이터 분석에서 설명한 단계를 사용하여 중지 코드 매개 변수를 수집합니다. 중지 코드 매개 변수를 사용하여 추적하려는 특정 유형의 코드 동작을 확인합니다.

드라이버 검증 도구

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

Windows 메모리 진단

이 버그 검사가 일관되지 않게 나타나는 경우 오류가 발생한 실제 메모리와 관련이 있을 수 있습니다.

Windows 메모리 진단 도구를 실행하여 메모리를 테스트합니다. 제어판 검색 상자에 메모리를 입력한 다음 컴퓨터의 메모리 문제 진단을 선택합니다. 테스트를 실행한 후 이벤트 뷰어를 사용하여 시스템 로그 아래의 결과를 봅니다. 결과를 보려면 MemoryDiagnostics-Results 항목을 찾습니다.