버그 검사 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)이 발급됩니다. 이 오류를 일으키는 드라이버의 이름도 표시됩니다.