必须先验证虚拟内存配置,因90%以上Win11游戏“内存不能为read”错误源于pagefile.sys禁用、空间不足或C盘剩余<8GB;需在任务管理器查看“提交”是否接近“可用”,并启用自定义大小(初始1.5倍、最大2倍物理内存)或迁移至非系统盘。

Win11运行大型游戏时弹出“内存不能为read”错误,表面看像内存硬件问题,但实际90%以上由虚拟内存配置不当、页面文件空间不足或与物理内存协同失序引发——当游戏瞬时申请大量连续内存页,而pagefile.sys无法及时扩展或所在磁盘已满,系统就会伪造出非法读取异常。
确认虚拟内存是否被禁用或空间不足
这一步必须最先验证,因为若页面文件被手动关闭或C盘剩余空间<8GB,后续所有修复都无效。打开任务管理器(Ctrl+Shift+Esc)→切换到“性能”选项卡→点击左侧“内存”→向下滚动查看右下角“提交”数值;若“已提交”接近或等于“可用”,且“提交限制”明显低于“已提交”,说明虚拟内存已耗尽。
右键“此电脑”→“属性”→左侧“高级系统设置”→“高级”选项卡→“性能”区域点“设置”→再切到“高级”→点“虚拟内存”旁的“更改”。检查是否勾选了“自动管理所有驱动器的分页文件大小”;若未勾选,且C盘列表中显示“无分页文件”,【必须立即启用,否则游戏必然崩溃】。
通过运行命令直达虚拟内存设置界面
该方式跳过全部图形导航层级,避免因设置应用卡顿或权限异常导致入口不可达。
按下Win+R打开运行框→输入systempropertiesadvanced→回车→窗口直接定位在“高级”选项卡→点击“性能”区域的“设置”按钮→在新窗口中切到“高级”选项卡→点击“虚拟内存”下方的“更改”按钮。
取消勾选“自动管理所有驱动器的分页文件大小”→在驱动器列表中选中C盘→选择“自定义大小”→初始大小填入物理内存容量的1.5倍(如16GB内存填24576),最大值填2倍(32768)→点“设置”→弹出提示后点“确定”。
将页面文件迁移至非系统盘并清理空间
方法一:SSD迁移(推荐)
若你有第二块SSD(如D盘),且剩余空间≥64GB,迁移后可显著降低I/O争抢。在上一步“虚拟内存更改”窗口中,先对C盘选择“无分页文件”→点“设置”→再选D盘→“自定义大小”→初始设为16384,最大设为32768→点“设置”→确定。
方法二:强制释放C盘空间
pagefile.sys默认隐藏且受系统保护,普通删除无效。以管理员身份运行终端→输入:del /f /q C:\pagefile.sys→回车(此命令仅清除残留旧文件,不影响当前设置)→再执行:cleanmgr→勾选“系统文件清理”→重点清理“Windows更新清理”和“传递优化文件”,确保C盘空闲≥20GB。
注意:迁移后务必重启,否则游戏仍会尝试从C盘加载pagefile.sys,导致报错复现。
重置系统内存管理组件注册状态
大型游戏常调用DirectX、COM+等底层组件,若ole32.dll、d3d11.dll等注册异常,会返回空指针地址,触发“read”错误。此操作不修改文件本身,只刷新注册表映射关系。
第一步:右键“开始”按钮→选择“终端(管理员)”→点“是”。
第二步:依次执行以下命令,每行回车后等待光标恢复再输下一行:
for %1 in (%windir%\system32\d3d*.dll) do regsvr32.exe /s %1
for %i in (%windir%\system32\ole*.dll) do regsvr32.exe /s %i
for %j in (%windir%\system32\comctl32.dll) do regsvr32.exe /s %j
第三步:关闭终端→重启电脑→启动游戏测试。


















