다음을 통해 공유


버그 검사 0x1A: MEMORY_MANAGEMENT

MEMORY_MANAGEMENT 버그 검사 값은 0x0000001A. 버그 검사 심각한 메모리 관리 오류가 발생했음을 나타냅니다.

중요

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

MEMORY_MANAGEMENT 매개 변수

매개 변수 1은 정확한 위반을 식별합니다.

매개 변수 1 오류 원인
0x31 이미지 재배치 수정 테이블 또는 코드 스트림이 손상되었습니다. 오류는 하드웨어 오류일 수 있습니다.
0x3f CRC(순환 중복 검사) 오류로 인페이지 작업이 실패했습니다. 매개 변수 2에는 페이지 파일 오프셋이 포함됩니다. 매개 변수 3에는 페이지 CRC 값이 포함됩니다. 매개 변수 4에는 예상 CRC 값이 포함됩니다.
0x403 페이지 테이블과 PFN(페이지 프레임 번호)이 동기화되지 않습니다. 이 오류는 하드웨어 오류일 수 있습니다. 특히 매개 변수 3과 4가 한 비트만 다른 경우입니다.
0x404 시스템 페이지를 삭제하는 과정에서 PFN과 현재 PTE(페이지 테이블 항목) 포인터 간의 불일치가 발견되었습니다. 매개 변수 2는 예상된 PTE입니다. 매개 변수 3은 PTE 콘텐츠입니다. 매개 변수 4는 PFN의 PTE입니다.
0x411 PTE가 손상되었습니다. 매개 변수 2는 PTE의 주소입니다.
0x1010 호출자가 현재 잠겨 있지 않은 페이징 가능한 섹션의 잠금을 해제하고 있습니다. (이 섹션은 잠기지 않았거나 두 번 잠금 해제되었습니다.)
0x1233 드라이버가 잠겨 있지 않은 실제 메모리 페이지를 매핑하려고 했습니다. 페이지의 콘텐츠 또는 특성이 언제든지 변경 될 수 있으므로이 작업은 불법입니다. 코드의 버그가 매핑을 호출했습니다. 매개 변수 2는 드라이버가 매핑하려고 시도한 실제 페이지의 PFN입니다.
0x1234 호출자가 존재하지 않는 페이징 가능 섹션을 잠그려고 합니다.
0x1235 호출자가 잘못된 매핑으로 MDL을 보호하려고 합니다.
0x1236 호출자가 잠금 해제(또는 잘못된) 물리적 페이지를 포함하는 MDL을 지정했습니다. 매개 변수 2에는 MDL에 대한 포인터가 포함되어 있습니다. 매개 변수 3에는 잘못된 PFN에 대한 포인터가 포함되어 있습니다. 매개 변수 4에 잘못된 PFN 값이 포함되어 있습니다.
0x1240 호출자가 상주하지 않는 가상 주소 범위에 대한 MDL을 빌드하는 것은 불법입니다. 매개 변수 2는 MDL입니다. 매개 변수 3은 PTE 포인터입니다.
0x3300 쓰기 작업 중에 참조된 가상 주소가 실수로 "쓰기 시 복사"로 표시됩니다. 매개 변수 2는 의 값입니다 FaultingAddress. 매개 변수 3은 PTE 콘텐츠입니다. 매개 변수 4는 가상 주소 공간 형식을 나타냅니다.
0x3451 스왑된 커널 스레드 스택의 PTE가 손상되었습니다.
0x3453 미해결 참조로 인해 종료된 프로세스의 모든 페이지 테이블 페이지를 삭제할 수 있는 것은 아닙니다. 이 오류는 일반적으로 손상된 프로세스 페이지 테이블 구조를 나타냅니다.
0x3470 캐시된 커널 스택이 무료 목록에 있는 동안 손상되었습니다. 이 메모리 손상은 심각한 문제를 나타내며 호출 스택은 피해자 또는 범인일 수 있습니다. 매개 변수 2는 가상 주소입니다. 매개 변수 3은 가상 주소 쿠키입니다.
0x4477 드라이버가 시스템 프로세스의 사용자 공간에서 할당되지 않은 주소에 쓰려고 했습니다. 매개 변수 2에는 시도된 쓰기의 주소가 포함됩니다.
0x5100 할당 비트맵이 손상되었습니다. 메모리 관리자가 이미 사용 중인 가상 주소를 덮어쓰려고 합니다.
0x5305 호출자가 해제할 잘못된 풀 주소(매개 변수 2)를 지정하고 있습니다. 매개 변수 2는 평가되는 가상 주소입니다. 매개 변수 3은 지역 크기입니다.
0x6001 메모리 저장소 구성 요소의 프라이빗 메모리 범위가 손상되어 액세스할 수 없게 되었습니다. 매개 변수 2는 반환된 상태. 매개 변수 3은 저장소의 개인 메모리 범위에 있는 가상 주소입니다. 매개 변수 4는 MDL입니다.

0x8886 0x8887
(Windows 7 이상). 페이지 우선 순위 값이 동일해야 하는 대기 목록의 두 페이지에는 동일한 페이지 우선 순위 값이 없습니다. 다른 값은 매개 변수 4에서 캡처됩니다.

0x8888 0x8889
내부 메모리 관리 구조가 손상되었습니다.
0x888A 내부 메모리 관리 구조(PTE 또는 PFN)가 손상되었을 수 있습니다.
0x9696 PFN(매개 변수 2)이 더 이상 최상위 프로세스에 연결되지 않은 손상된 링크에서 발견되었습니다. 이 오류는 손상된 PFN 구조를 나타냅니다.
0x15000 호출자가 잘못된 주소를 제공하거나 잘못된 프로세스 컨텍스트에서 이 루틴을 호출합니다. 이 오류로 인해 찾을 수 없는 범위를 보안 해제할 수 없으므로 두 작업 모두 불법입니다. 매개 변수 2는 평가되는 가상 주소입니다.
0x15001 이전에 보호된 메모리를 보호하지 않는 과정에서 오류가 발생했습니다. 이 오류는 호출자가 잘못된 프로세스 컨텍스트에서 실수로 호출한 MmUnsecureVirtualMemory 경우에 발생할 수 있습니다.
0x41202 0이 아닌 PTE의 페이지 보호를 결정하는 과정에서 PTE가 손상된 것으로 확인되었습니다. 매개 변수 2는 PTE 포인터입니다. 매개 변수 3은 PTE 콘텐츠입니다. 매개 변수 4는 가상 주소 설명자입니다.
0x41286 호출자가 잘못된 풀 주소를 해제하려고 합니다.
0x41785 작업 집합 목록이 손상되었습니다.
0x41287 작업 집합 동기화를 유지하는 동안 잘못된 페이지 오류가 발생했습니다. 매개 변수 2에는 참조된 가상 주소가 포함됩니다.
0x41790 페이지 테이블 페이지가 손상되었습니다. 64비트 버전의 Windows에서 매개 변수 2에는 손상된 페이지 테이블 페이지의 PFN 주소가 포함됩니다. 32비트 버전의 Windows에서 매개 변수 2는 사용된 PTE 수에 대한 포인터를 포함하고 매개 변수 3에는 사용된 PTE 수가 포함됩니다.
0x41792 손상된 PTE가 검색되었습니다. 매개 변수 2에는 PTE의 주소가 포함됩니다. 매개 변수 3과 4는 PTE의 낮고 높은 부분을 포함합니다.
0x61941 페이징 계층이 손상되었습니다. 매개 변수 2는 오류를 발생시킨 가상 주소에 대한 포인터입니다.
0x61948 I/O 공간 영역에 대한 참조 수를 감소시키는 과정에서 해당 지역의 회계 노드를 찾을 수 없습니다. 일반적으로 이 오류는 인수 범위가 잠기지 않았거나 이미 잠금 해제되었음을 의미합니다. 매개 변수 2는 기본 I/O 프레임입니다. 매개 변수 3은 지역의 페이지 수입니다. 매개 변수 4는 노드를 찾을 수 없는 특정 I/O 프레임입니다.
0x61949 값이 IoPageFrameNode null입니다. 매개 변수 2는 입니다 PageFrameIndex.
0x6194A 매핑되지 않은 I/O 공간 실제 페이지에서 참조 수를 감소시키는 동안 오류가 발생했습니다. 현재 참조되지 않는 항목이 역참조되고 있습니다. 매개 변수 2와 3은 매핑되지 않은 호출자의 I/O 공간 범위를 설명합니다. 매개 변수 4는 참조될 것으로 예상되지만 참조되지 않는 I/O 공간 물리적 페이지입니다.
0x03030308 제거(또는 자르기)할 범위는 로더에서 사용 중입니다. 안전하게 제거할 수 없으므로 시스템에서 중지 코드를 발급해야 합니다. 매개 변수 2는 입니다 HighestPhysicalPage.

이러한 매개 변수 1 값은 이전 버전의 Windows에서 사용되었습니다.

매개 변수 1 오류 원인
0x777 호출자가 현재 잠겨 있지 않은 시스템 캐시 주소의 잠금을 해제하고 있습니다. 주소가 매핑되지 않았거나 두 번 잠금 해제되었습니다.
0x778 시스템은 마지막 시스템 캐시 뷰 주소를 보존하는 대신 사용합니다.

0x780 0x781
인수 시스템 캐시 뷰를 매핑하는 PTE가 손상되었습니다.
0x1000 MmGetSystemAddressForMdl* 호출자가 완전히 캐시된 물리적 페이지를 캐시되지 않은 페이지로 매핑하려고 했습니다. 이 작업을 수행하면 충돌하는 하드웨어 변환 버퍼 항목이 발생하므로 운영 체제에서 거부되었습니다. 호출자가 요청 중인 MDL(메모리 설명자 목록)에서 "오류 발생 시 버그 검사"를 지정했기 때문에 시스템에서 버그 검사 실행했습니다.
0x1241 MDL을 빌드하기 위해 호출하는 동안 MDL의 가상 주소가 예기치 않게 비동기적으로 매핑되지 않았습니다. 매개 변수 2는 MDL입니다. 매개 변수 3은 PTE 포인터입니다.
0x5003 작업 집합 무료 목록이 손상되었습니다. 하드웨어 오류일 수 있습니다.
0x5200 무료 풀 SLIST의 페이지가 손상되었습니다. 이 오류는 드라이버의 쓰기 후 무료 버그 또는 이전 페이지의 오버런의 결과일 수 있습니다. 매개 변수 2에는 무료 풀 블록의 주소가 포함됩니다. 매개 변수 4에는 해당 주소에 있을 것으로 예상되는 값이 포함되어 있습니다. 매개 변수 3에는 발견된 실제 값이 포함됩니다.

0x8884 0x8885
(Windows 7 이상). 페이지 우선 순위 값이 동일해야 하는 대기 목록의 두 페이지에는 동일한 페이지 우선 순위 값이 없습니다. 다른 값은 매개 변수 4에서 캡처됩니다.
0x41201 가상 주소를 쿼리하는 과정에서 PFN과 현재 PTE 포인터 간의 불일치가 발견되었습니다. 매개 변수 2는 해당 PTE입니다. 매개 변수 3은 PTE 콘텐츠입니다. 매개 변수 4는 가상 주소 설명자입니다.
0x41283 PTE에서 인코딩된 작업 집합 인덱스가 손상되었습니다.
0x41284 PTE 또는 작업 집합 목록이 손상되었습니다.
0x41793 페이지 테이블 페이지가 손상되었습니다. 매개 변수 2에는 마지막으로 처리된 PTE에 대한 포인터가 포함되어 있습니다. 매개 변수 3에는 0이 아닌 PTE 수가 포함됩니다. 매개 변수 4에는 페이지 테이블에 예상되는 0이 아닌 PTE 수가 포함됩니다.
이 메모리 매개 변수는 더 이상 사용되지 않으며 Windows 10 버전 1803 이후에는 더 이상 사용할 수 없습니다.
0x61940 PDE가 예기치 않게 무효화되었습니다.
0x61946 만들어지는 MDL에 결함이 있습니다. 이 오류는 거의 항상 드라이버 호출 MmProbeAndLockPages 에 오류가 있음을 의미합니다. 일반적으로 드라이버는 페이징 읽기를 처리하라는 메시지가 표시될 때 쓰기 MDL을 만들려고 합니다.
0x03030303 부팅 로더가 손상되었습니다. (이 값은 Intel Itanium 머신에만 적용됩니다.)

해결 방법

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

또한 Windows 메모리 진단 도구를 실행하여 실제 메모리 모듈에 영향을 주는 문제를 검사 것이 유용할 수 있습니다.

추가 정보

버그 검사 코드 참조