錯誤檢查0x3F:NO_MORE_SYSTEM_PTES
NO_MORE_SYSTEM_PTES錯誤檢查的 值為 0x0000003F。 這是執行太多 I/O 動作的系統結果。 這會導致 PTE) (分散的系統分頁資料表專案。
重要
本文適用于程式設計人員。 如果您是在使用電腦時收到藍色螢幕錯誤碼的客戶,請參閱 針對藍色畫面錯誤進行疑難排解。
NO_MORE_SYSTEM_PTES參數
參數 | 描述 |
---|---|
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,則會發出 錯誤檢查0xD8 (DRIVER_USED_EXCESSIVE_PTES) 而不是0x3F。 也會顯示造成此錯誤的驅動程式名稱。