windows10 1809 后旧软件遇到内存分配错误 memory allocation error 可否通过修改注册表解决?

2020-11-23 15:10:42 +08:00
 laqow

在 windows 10 LTSC 上装一个 2017 年的三维图像软件,总是一开就报 memory allocation error 然后闪退,但奇怪的是如果把这个软件放在 win10 运行的 sandboxie 里面或者 win7 下运行则运行良好。我一直不知道问题出在哪里,直到最近用 softperfect ramdisk 旧版本创建 4096G 内存盘报 C000009A 错误,查到他们的论坛指出 1809 后的 windows10 改变了 MmAllocateNodePagesForMdlEx 接口的限制,单次申请只能申请最大 4G 的连续内存空间,如果旧软件在 windows10 使用这个接口申请内存则会失败,我猜两个软件出错的原因是一样的。

请问 windows10 里面遇到类似 memory allocation error 的错误除了升级旧软件以外应该如何解决?

1841 次点击
所在节点    Windows
5 条回复
ysc3839
2020-11-23 15:23:46 +08:00
我猜测不一样,MmAllocateNodePagesForMdlEx 是内核态的 API,你那个三维软件用到了内核态的东西?
最好说一下软件名,需要实际测试才知道如何。
laqow
2020-11-23 19:43:41 +08:00
@ysc3839 谢谢,那可能是我想多了。

是显微镜用的图像处理软件,不留关键字了。

https://i.loli.net/2020/11/23/orhVnj7dLq5ZHtR.png

软件出错大概是这样的提示,换了两个旧版本在 win10 上都报这个错,但最新版不会。因为这个软件运行消耗的内存很大,所以考虑可能是申请空间时出错。我用 processmonitor 没发现在报错前有什么很明显的暗示,软件也没提供 log 供跟踪。
ysc3839
2020-11-23 20:01:36 +08:00
不实际调试真的很难分析。

可以试试运行 windowsdefender://exploitprotection,然后把选项全都关闭。不过这么做会降低系统安全性。
zhuangzhuang1988
2020-11-23 21:54:52 +08:00
那就用老版本的 windows 吧
鬼知道这个软件用了啥 undocument api
ShallowAi
2020-11-24 09:14:27 +08:00
退回 LTSB 或者 Win7 吧 这种兼容性真的不太好解决

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/728340

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX