오류 설명
드라이버 등의 시스템 코드가 메모리 풀에 잘못된 요청을 했을 때 나타나는 오류입니다. 이미 해제한 메모리를 다시 해제하는 등 요청 위반의 종류를 확인해야 합니다.
오류의 정식 의미와 발생 조건
드라이버의 메모리 할당과 해제는 주소, 풀 종류, 실행 우선순위 등의 규칙을 따라야 합니다. 운영체제가 규칙 위반을 감지하면 잘못된 요청을 계속 처리하는 대신 시스템을 중지할 수 있습니다.
중지 코드는 Windows가 어떤 상태를 발견했는지 나타냅니다. 원인을 정하려면 발생 작업, 최근 변경과 추가 기록을 함께 확인해야 하며 같은 코드라도 장비 구성에 따라 점검 대상이 달라질 수 있습니다.
비슷한 오류와 버전별 적용 차이
BAD_POOL_HEADER (0x00000019)는 풀의 관리 정보 손상을 감지한 코드이고, BAD_POOL_CALLER는 잘못된 풀 요청을 뜻합니다. 둘 다 일반적인 저장공간 부족 메시지와는 다릅니다.
주요 원인
아래는 공식 문서가 설명하는 발생 원인과 조건입니다. 현재 컴퓨터의 원인이 모두 확인됐다는 뜻은 아니며, 다음 점검 항목의 결과와 오류 기록으로 해당 여부를 구분해야 합니다.
같은 메모리를 두 번 해제하는 등 잘못된 요청
현재 스레드가 메모리 풀에 잘못된 요청을 한 경우입니다. 이미 해제한 메모리의 재해제와 잘못된 풀 주소 등은 첫 번째 인수에 따라 구분합니다.
허용되지 않은 처리 수준에서 할당하거나 해제한 경우
메모리 풀 사용에는 실행 수준과 풀 종류에 따른 조건이 있습니다. 드라이버가 이를 어겼는지 실제 인수와 호출 경로로 확인해야 합니다.
점검할 부분
장치 드라이버
최근 드라이버 변경과 같은 장치 작업에서의 재발을 확인합니다.
보안 및 백업 제품
오류 직전 관련 제품을 설치하거나 업데이트했는지 확인합니다.
메모리
메모리 손상 단서가 있으면 진단 결과를 확보합니다.
요청 위반 유형
덤프의 첫 번째 인수로 어떤 메모리 요청이 잘못됐는지 구분합니다.
먼저 확보할 기록과 실제 확인 경로
오류 뒤 설정을 바꾸기 전에 아래 정보를 보존합니다. 인수는 오류를 분석하기 위해 코드와 함께 기록되는 네 개의 부가 값이며, 화면에 모두 보이지 않으면 덤프에서 확인합니다.
화면, 발생 작업과 Windows 버전
전체 중지 코드와 정식 이름, 표시된 파일명, 발생 시각을 사진이나 메모로 남깁니다. 어떤 프로그램과 장치를 사용했는지, 로그인 전인지 또는 작업 중인지도 함께 적습니다.
Windows가 열리면 Windows 키와 R 키를 눌러 실행 창을 열고 winver를 실행해 제품과 운영체제 빌드를 기록하고, msinfo32에서 장비 모델 및 기본 입출력 시스템 버전을 확인합니다. 업데이트 전후 비교에는 장치 드라이버 공급자와 버전도 필요합니다.
같은 시각의 이벤트와 재부팅 기록
Windows 키와 R 키를 눌러 실행 창을 열고 eventvwr.msc를 입력하고 Windows 로그 > 시스템을 엽니다. 오류 직전과 직후의 메시지에서 원본, 이벤트 식별번호, 전체 설명과 장치 정보를 보존합니다. 필요하면 응용 프로그램 로그도 같은 시각으로 확인합니다.
Kernel-Power 이벤트 41은 정상 종료되지 않은 뒤 시작됐다는 기록입니다. 이것만으로 파워서플라이 고장이나 특정 드라이버 원인을 판정하지 않습니다. 블루스크린 이전의 실제 장치 및 프로그램 오류와 구분합니다.
덤프 위치와 생성되지 않았을 때의 확인
Windows가 생성한 작은 덤프는 보통 %SystemRoot%\Minidump, 자동 또는 커널 덤프는 %SystemRoot%\MEMORY.DMP에 저장됩니다. %SystemRoot%는 대개 C:\Windows이지만 설치 환경에 따라 다릅니다. 파일의 생성 시각이 이번 오류와 맞는지 확인하고 원본 사본을 보존합니다.
덤프가 없으면 Windows 검색에서 고급 시스템 설정 보기 > 고급 > 시작 및 복구의 설정 > 디버깅 정보 쓰기를 확인합니다. 자동 메모리 덤프 등 필요한 형식을 선택할 때 페이지 파일과 저장 공간 조건도 함께 확인하고 적용에 필요한 재시작을 진행합니다. 다음 오류 이전에 설정을 바꿔도 과거 오류의 덤프가 새로 생기지는 않습니다.
작은 덤프에는 원인 분석에 필요한 메모리가 빠질 수 있습니다. 분석 담당자가 추가 자료를 요구하면 덤프 형식과 수집 조건을 조정합니다. 덤프에는 메모리 속 정보가 포함될 수 있으므로 원본을 공개 게시판에 그대로 올리지 말고 필요한 담당자에게 전달합니다.
드라이버 롤백이 필요한 경우의 실제 경로
장치 드라이버를 되돌릴 필요가 있을 때는 시작 버튼을 오른쪽 클릭해 장치 관리자를 열고 해당 장치 > 속성 > 드라이버 > 드라이버 롤백을 확인합니다. 관리자 권한과 이전 패키지가 필요하며, 버튼이 비활성화되면 제조사의 해당 모델 및 Windows 버전용 패키지를 확인합니다. 부팅 저장장치나 원격 접속용 장치를 임의로 비활성화하지 않습니다.
덤프의 인수로 구분하는 오류 유형
아래 값은 중지 코드 자체가 아니라 덤프의 부가 인수 또는 분석 항목입니다. 실제 인수와 Windows 빌드를 대조하고 해당하지 않는 행을 다른 장비에 그대로 적용하지 않습니다.
| 인수 또는 항목 | 의미 | 확인과 판단 |
|---|---|---|
| Parameter 1 = 0x06 또는 0x07 | 이미 해제한 풀 메모리를 다시 해제하려는 동작 | 호출 경로와 메모리 소유 관계를 분석합니다. |
| Parameter 1 = 0x08 또는 0x09 | 잘못된 인터럽트 요청 수준에서 풀 할당 또는 해제 | 현재 인터럽트 요청 수준과 풀 유형을 대조합니다. |
| Parameter 1 = 0x0A | 잘못된 태그로 메모리를 해제하려는 동작 | 할당자 태그와 해제 시도 태그를 비교합니다. |
전문 분석에서 확인할 내용과 한계
!analyze -v와 Parameter 1에 해당하는 인수표로 풀 주소, 태그와 인터럽트 요청 수준을 조사합니다. BAD_POOL_HEADER와 함께 발생해도 발견 시점과 요청 위반을 구분해 여러 덤프를 비교합니다.
Microsoft Windows 디버거에서 덤프를 열고 심볼 준비가 끝나면 !analyze -v로 상세 분석, .bugcheck로 코드와 인수, kb로 호출 스택을 확인할 수 있습니다. 주소, 모듈과 필요한 메모리가 실제 덤프에 존재하는지 확인해야 하며 자동 출력의 한 줄을 원인 확정으로 사용하지 않습니다.
해결 방법
점검에서 확인된 단서에 따라 아래 조치를 선택합니다. 모든 조치를 연속해서 실행하거나 확인되지 않은 부품부터 교체하지 않습니다.
잘못된 풀 요청의 종류를 먼저 확인합니다. 이중 해제와 허용되지 않은 인터럽트 요청 수준에서의 할당은 서로 다른 드라이버 동작이므로 첫 번째 인수에 따라 조사합니다.
부팅 상태에 따른 점검 시작점
Windows가 열리면 최근 장치 드라이버 및 상주 제품 변경을 기록하고 덤프를 보존합니다. 부팅 전에 반복되면 안전 모드와 최근 변경의 롤백 가능성을 확인하며 모든 드라이버에 검증기를 켜지 않습니다.
Windows에 로그인할 수 있을 때
열린 작업과 중요한 데이터를 먼저 저장한 뒤 오류 기록과 덤프를 확보합니다. 최근 장치, 드라이버 및 프로그램 변경은 날짜와 버전으로 정리합니다. 정상 부팅된다는 이유만으로 기록을 삭제하거나 모든 드라이버를 한꺼번에 바꾸지 않습니다.
로그인 전에 반복되거나 복구 화면만 열릴 때
전원 메뉴를 사용할 수 있으면 Shift를 누른 상태로 다시 시작을 선택합니다. Windows 11에서는 설정 > 시스템 > 복구 > 고급 시작 옵션의 지금 다시 시작으로도 접근할 수 있습니다. Windows 10의 복구 메뉴는 업데이트 및 보안 아래에 있습니다.
Windows 복구 환경에서 문제 해결 > 고급 옵션 > 시작 설정 > 다시 시작을 선택하고 4 또는 F4로 안전 모드를 시작합니다. 메뉴 제공 여부는 장치와 설치 상태에 따라 다르며 암호화된 장치에는 BitLocker 복구 키가 필요할 수 있습니다. 안전 모드의 정상 동작은 비교 단서이고 모든 하드웨어가 정상이라는 증명은 아닙니다.
복구 키가 없거나 디스크가 인식되지 않거나 중요한 파일을 읽을 수 없으면 수정 작업보다 자료와 장치 상태 확인을 우선합니다. 설치 매체를 사용하더라도 컴퓨터 복구와 새 설치를 구분하고, 데이터 보존 전에 초기화나 포맷을 선택하지 않습니다.
01 요청 위반 유형과 반복 작업 확인
실행: 덤프의 첫 번째 인수와 파일 처리, 장치 연결 등 오류 직전 작업을 함께 기록합니다.
결과와 판단: 이중 해제와 인터럽트 요청 수준 위반은 같은 오류 이름 안에서도 원인이 되는 코드 동작이 다릅니다.
다음 조치: 유형과 실제 모듈을 함께 분석하도록 원본 덤프를 전달합니다.
02 최근 드라이버 변경을 한 항목씩 비교
실행: 장치 관리자의 공급자 및 버전과 최근 백업 또는 보안 제품 업데이트를 기록합니다. 시작 시점이 맞는 후보의 지원 버전을 확인합니다.
결과와 판단: 동일한 작업에서 드라이버 변경 전후 결과가 달라지는지 봅니다. 변경 근거가 없는 제품을 일괄 제거하지 않습니다.
다음 조치: 지원되는 롤백 또는 패치 하나를 적용한 뒤 재발을 확인하고 결과를 남깁니다.
03 메모리 진단의 역할 구분
실행: 메모리 손상 단서가 있으면 Windows 메모리 진단을 예약하고 MemoryDiagnostics-Results 결과를 확보합니다.
결과와 판단: 진단 오류는 하드웨어 점검 단서입니다. 정상 결과는 잘못된 메모리 해제 또는 인터럽트 요청 수준 사용이 없다는 증명이 아닙니다.
다음 조치: 오류가 있으면 제조사 진단으로, 없는데 재발하면 드라이버의 풀 요청 분석으로 넘어갑니다.
04 검증기 사용은 분석 환경으로 제한
실행: 분석 담당자가 대상 드라이버와 복구 방법이 준비된 테스트 환경에서 풀 관련 Driver Verifier 검사를 검토합니다.
결과와 판단: 검증 중 새 중지 오류가 발생할 수 있으며 그것은 문제를 드러낸 진단 결과이지 자동 수리 결과가 아닙니다.
다음 조치: 발견한 위반 유형을 공급자에게 전달하고 검증기를 끈 일반 환경의 재발 여부를 따로 확인합니다.
조치 후 확인하고 남길 결과
처음 오류가 난 장치 및 파일 작업을 확인하고 풀 요청 하위 유형이 바뀌었는지 새 덤프와 비교합니다.
조치 전후 기록에는 변경한 항목 하나와 버전, 재시작 여부, 같은 작업의 결과 및 새 오류 시각을 남깁니다. 진단 도구가 정상이라고 나온 결과와 원래 증상이 재발하지 않은 결과를 각각 적습니다.
작업 전 확인할 조건과 중단 기준
Driver Verifier를 켜면 위반을 더 이른 시점에 드러낼 수 있지만 시스템 정지와 부하도 유발할 수 있습니다. 모든 드라이버에 무조건 적용하지 않으며 복구 가능한 분석 환경에서만 사용 여부를 판단합니다.
오류 코드의 의미와 현재 제품의 지원 여부는 별개입니다. Windows 제품과 빌드, 장치 또는 프로그램 버전에 맞는 절차를 사용하고 변경한 항목과 결과를 남깁니다.
관리자 권한이 필요한 변경과 재부팅 검사는 업무 중단을 준비한 뒤 진행합니다. 저장장치 미인식, 반복 읽기 오류 또는 복구 키 미확보가 있으면 데이터에 영향을 주는 작업을 멈추고 대상과 보존 상태부터 확인합니다.
자주 묻는 질문
BAD_POOL_HEADER와 같은 뜻인가요?
관련은 있지만 BAD_POOL_CALLER는 잘못된 풀 요청을 나타냅니다. 첫 번째 인수에 이중 해제나 인터럽트 요청 수준 위반 등의 구체적인 유형이 있습니다.
시스템 메모리 부족을 해결하면 되나요?
용량 부족을 알려주는 일반 메시지가 아닙니다. 드라이버 요청 위반과 하드웨어 진단 결과를 구분해야 합니다.
참고 자료
이 글은 Microsoft 공식 문서의 코드 의미와 도구 사용 조건을 기준으로 정리한 일반 점검 안내입니다. 실제 장비에서 원인을 확정한 작업사례가 아니며, 메뉴 이름과 제공 기능은 Windows 빌드 및 장비 구성에 따라 달라질 수 있습니다.
코드별 Microsoft 문서와 Windows 복구, 덤프 수집 및 도구 사용 조건을 대조했습니다. 최종 검토 기준일은 2026년 10월 24일이며 확인한 근거가 바뀌면 영향받는 설명을 다시 검토합니다.
Bug Check 0x000000C2 BAD_POOL_CALLER - Windows drivers | Microsoft Learn
Windows 시작 설정과 안전 모드 - Microsoft Support
관련 용어와 글
관련 기술자료
- BAD_POOL_HEADER (0x00000019) 풀 헤더 손상: 원인과 확인 방법
- KMODE_EXCEPTION_NOT_HANDLED (0x0000001E) 처리되지 않은 커널 모드 예외: 원인과 확인 방법
- PFN_LIST_CORRUPT (0x0000004E) 페이지 프레임 번호 목록 손상: 원인과 확인 방법
- REGISTRY_ERROR (0x00000051) 심각한 레지스트리 오류: 원인과 확인 방법
- SYSTEM_THREAD_EXCEPTION_NOT_HANDLED (0x0000007E) 처리되지 않은 시스템 스레드 예외: 원인과 확인 방법
- UNEXPECTED_KERNEL_MODE_TRAP (0x0000007F) 처리하지 못한 커널 모드 트랩: 원인과 확인 방법
- DRIVER_VERIFIER_DETECTED_VIOLATION (0x000000C4) 드라이버 검증기가 감지한 치명적 위반: 원인과 확인 방법
- DRIVER_IRQL_NOT_LESS_OR_EQUAL (0x000000D1) 높은 인터럽트 요청 수준에서의 드라이버 메모리 접근 오류: 원인과 확인 방법
- CLOCK_WATCHDOG_TIMEOUT (0x00000101) 프로세서 클록 인터럽트 응답 시간 초과: 원인과 확인 방법
- VIDEO_SCHEDULER_INTERNAL_ERROR (0x00000119) 비디오 스케줄러의 치명적인 위반: 원인과 확인 방법
- KERNEL_SECURITY_CHECK_FAILURE (0x00000139) 커널의 중요 데이터 구조 손상 감지: 원인과 확인 방법
- KERNEL_MODE_HEAP_CORRUPTION (0x0000013A) 커널 모드 힙 손상: 원인과 확인 방법
- UNEXPECTED_STORE_EXCEPTION (0x00000154) 커널 메모리 저장 구성요소의 예기치 않은 예외: 원인과 확인 방법
- 윈도우 오류 코드 찾아보기: 블루스크린부터 설치와 공유폴더까지
- Windows 블루스크린 전체 오류 코드 목록과 적용 조건