다음을 통해 공유


버그 검사 0x3F: NO_MORE_SYSTEM_PTES

NO_MORE_SYSTEM_PTES 버그 검사 값은 0x0000003F. 이는 너무 많은 I/O 작업을 수행한 시스템의 결과입니다. 이로 인해 PTE(시스템 페이지 테이블 항목)가 조각화되었습니다.

중요

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

NO_MORE_SYSTEM_PTES 매개 변수

매개 변수 Description

1

0: 시스템 확장 PTE 유형

1: 페이지가 없는 풀 확장 PTE 유형

2

메모리 요청 크기

3

총 무료 시스템 PTE

4

총 시스템 PTE

원인

거의 모든 경우에 시스템은 실제로 PTE에서 벗어나지 않습니다. 대신 드라이버가 큰 메모리 블록을 요청했지만 이 요청을 충족하기에 충분한 크기의 연속 블록은 없습니다.

비디오 드라이버는 성공해야 하는 많은 양의 커널 메모리를 할당하는 경우가 많습니다. 일부 백업 프로그램도 마찬가지입니다.

해결 방법

가능한 해결 방법: 레지스트리를 수정하여 총 시스템 PTE 수를 늘입니다. 이것이 도움이 되지 않으면 최근에 설치된 소프트웨어, 특히 백업 유틸리티 또는 디스크 집약적 애플리케이션을 제거합니다.

문제 디버깅: 다음 메서드를 사용하여 버그 검사 0x3F 디버그할 수 있습니다.

먼저 스택 추적을 가져와 !sysptes 3 확장 명령을 사용합니다.

그런 다음 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\TrackPtes DWORD 1로 설정하고 다시 부팅합니다. 이렇게 하면 시스템에서 스택 추적을 저장합니다.

이렇게 하면 PTE 소유자에 대한 자세한 정보를 표시할 수 있습니다. 예:

0: kd> !sysptes 4

0x2c47 System PTEs allocated to mapping locked pages

VA       MDL     PageCount  Caller/CallersCaller
f0e5db48 eb6ceef0        1 ntkrpamp!MmMapLockedPages+0x15/ntkrpamp!IopfCallDriver+0x35
f0c3fe48 eb634bf0        1 netbt!NbtTdiAssociateConnection+0x1f/netbt!DelayedNbtProcessConnect+0x17c
f0db38e8 eb65b880        1 mrxsmb!SmbMmAllocateSessionEntry+0x89/mrxsmb!SmbCepInitializeExchange+0xda
f8312568 eb6df880        1 rdbss!RxCreateFromNetRoot+0x3d7/rdbss!RxCreateFromNetRoot+0x93
f8363908 eb685880        1 mrxsmb!SmbMmAllocateSessionEntry+0x89/mrxsmb!SmbCepInitializeExchange+0xda
f0c54248 eb640880        1 rdbss!RxCreateFromNetRoot+0x3d7/rdbss!RxCreateFromNetRoot+0x93
f0ddf448 eb5f3160        1 mrxsmb!MrxSmbUnalignedDirEntryCopyTail+0x387/mrxsmb!MRxSmbCoreInformation+0x36
f150bc08 eb6367b0        1 mrxsmb!MrxSmbUnalignedDirEntryCopyTail+0x387/mrxsmb!MRxSmbCoreInformation+0x36
f1392308 eb6fba70        1 netbt!NbtTdiOpenAddress+0x1fb/netbt!DelayedNbtProcessConnect+0x17c
eb1bee64 edac5000      200 VIDEOPRT!pVideoPortGetDeviceBase+0x118/VIDEOPRT!VideoPortMapMemory+0x45
f139b5a8 edd4b000       12 rdbss!FsRtlCopyWrite2+0x34/rdbss!RxDriverEntry+0x149
eb41f400 ede92000       20 VIDEOPRT!pVideoPortGetDeviceBase+0x139/VIDEOPRT!VideoPortGetDeviceBase+0x1b
eb41f198 edf2a000       20 NDIS!NdisReadNetworkAddress+0x3a/NDIS!NdisFreeSharedMemory+0x58
eb41f1e4 eb110000       10 VIDEOPRT!pVideoPortGetDeviceBase+0x139/VIDEOPRT!VideoPortGetDeviceBase+0x1b
......

TrackPtes 레지스트리 값이 설정된 후 시스템이 다시 PTE가 부족하면 0x3F 대신 버그 검사 0xD8(DRIVER_USED_EXCESSIVE_PTES)이 발급됩니다. 이 오류를 일으키는 드라이버의 이름도 표시됩니다.