0x000000b7(no_more_system_ptes)表明系统页表项(pte)耗尽,主因是旧版安全软件或驱动在内核中长期泄漏pte映射;需进入带网络的安全模式,检查paged/nonpaged池占用率,卸载高危软件(如火绒5.0以下、卡巴斯基2023等),禁用可疑驱动,关闭内存完整性,并重置pte相关注册表与bcd参数。

Win11蓝屏显示0x000000B7(NO_MORE_SYSTEM_PTES),说明系统页表项(PTE)耗尽,内核无法为新内存分配映射结构,典型表现为开机即蓝屏、启动后几分钟内崩溃、多开浏览器或虚拟机时必然触发——这不是驱动冲突的表象,而是内存管理资源被长期泄漏或错误配置彻底榨干。
确认是否为PTE资源真正枯竭
必须先排除误判:该错误常被错误归因于内存不足或硬盘故障,但实际是内核地址空间映射能力见底。若你刚升级到32GB以上内存却突然出现此码,极大概率是第三方软件(尤其是旧版杀毒、录屏、远程控制工具)在内核中注册了大量不可释放的PTE钩子。
第一步:强制进入带网络的安全模式→连续三次强制关机重启触发WinRE→选择“疑难解答→高级选项→启动设置→重启”→按F5进入带网络的安全模式。
第二步:以管理员身份运行PowerShell→输入命令:Get-Counter '\Memory\Pool Paged Bytes'→回车→记录返回值;再输入:Get-Counter '\Memory\Pool Nonpaged Bytes'→回车→观察两项数值是否持续高于系统物理内存的60%且不回落。
第三步:若两项均超阈值,说明PTE池已被占满,【此时绝不能直接运行SFC或DISM,它们会进一步挤占本已枯竭的PTE资源】。
立即释放被劫持的PTE资源
旧版安全软件和某些USB设备驱动会在内核中永久驻留PTE映射,导致每次开机都递增占用,直至0x000000B7爆发。
方法一:卸载高危软件(优先执行)
打开“设置→应用→已安装的应用”,按安装日期倒序排列,重点排查:火绒5.0以下版本、卡巴斯基2023及更早、腾讯电脑管家旧版、OBS Studio 28.0以下、AnyDesk 7.5以下、TeamViewer 15.x。右键卸载后,勾选“删除所有用户数据与驱动残留”。
方法二:禁用可疑内核驱动(需命令行)
在安全模式下的管理员PowerShell中,依次执行:
sc query type= driver state= all \| findstr "SERVICE_NAME"
逐行检查输出中含“kav”“hmpalert”“QQPCMgr”“obs”“anydesk”字样的服务名;对确认项执行:
sc stop 【服务名】→ sc config 【服务名】 start= disabled
方法三:重置PTE分配策略(仅限64位系统)
管理员PowerShell中执行:
bcdedit /set increaseuserva 3072
该命令将用户态虚拟地址空间从默认2GB提升至3GB,为PTE池腾出缓冲余量。【执行后必须完全关机(shutdown /s /f),不能重启,否则设置不生效】。
修复底层PTE管理机制
Windows 11 22H2+版本存在一个已知缺陷:当系统启用了“内存完整性”(Core Isolation)且同时加载了多个旧驱动时,PTE释放逻辑会失效。必须手动干预。
第一步:关闭内存完整性→“设置→隐私和安全性→Windows 安全中心→设备安全性→核心隔离详情”→关闭“内存完整性”。
第二步:清理PTE相关注册表残留→按Win+R输入regedit→导航至HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management→右侧双击“PagedPoolSize”→将数值数据改为0(十进制)→确定;同理修改“NonPagedPoolSize”也为0。
第三步:强制重建PTE映射表→管理员PowerShell中执行:
diskpart → list volume → exit
记下系统盘符(通常是C:)→执行:
dism /online /cleanup-image /restorehealth /source:wim:C:\Recovery\WindowsRE\winre.wim:1 /limitaccess
该命令从本地恢复环境镜像而非联网下载,避免PTE池在传输中被二次挤占。
第四步:重启前执行最终清理→PowerShell中输入:
net stop wuauserv & net stop cryptsvc & net stop bits & net stop msiserver
ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 catroot2.old
验证PTE资源是否恢复
完成全部操作后,执行完全关机(非重启)→等待电源灯熄灭→重新开机。
若成功进入桌面,立刻打开任务管理器→性能选项卡→点击“内存”→向下滚动查看“已提交”下方的“可用(MB)”数值,正常应大于500MB;再打开资源监视器→内存选项卡→观察“硬错误/秒”是否稳定为0。
若仍报0x000000B7,说明有未识别的PTE泄漏源,需使用WinDbg Preview分析最近一次内存转储文件(C:\Windows\LiveKernelReports\)。











