在 windows 10 LTSC 上装一个 2017 年的三维图像软件,总是一开就报 memory allocation error 然后闪退,但奇怪的是如果把这个软件放在 win10 运行的 sandboxie 里面或者 win7 下运行则运行良好。我一直不知道问题出在哪里,直到最近用 softperfect ramdisk 旧版本创建 4096G 内存盘报 C000009A 错误,查到他们的论坛指出 1809 后的 windows10 改变了 MmAllocateNodePagesForMdlEx 接口的限制,单次申请只能申请最大 4G 的连续内存空间,如果旧软件在 windows10 使用这个接口申请内存则会失败,我猜两个软件出错的原因是一样的。
请问 windows10 里面遇到类似 memory allocation error 的错误除了升级旧软件以外应该如何解决?
1
ysc3839 2020-11-23 15:23:46 +08:00 via Android
我猜测不一样,MmAllocateNodePagesForMdlEx 是内核态的 API,你那个三维软件用到了内核态的东西?
最好说一下软件名,需要实际测试才知道如何。 |
2
laqow OP @ysc3839 谢谢,那可能是我想多了。
是显微镜用的图像处理软件,不留关键字了。 https://i.loli.net/2020/11/23/orhVnj7dLq5ZHtR.png 软件出错大概是这样的提示,换了两个旧版本在 win10 上都报这个错,但最新版不会。因为这个软件运行消耗的内存很大,所以考虑可能是申请空间时出错。我用 processmonitor 没发现在报错前有什么很明显的暗示,软件也没提供 log 供跟踪。 |
3
ysc3839 2020-11-23 20:01:36 +08:00
不实际调试真的很难分析。
可以试试运行 windowsdefender://exploitprotection,然后把选项全都关闭。不过这么做会降低系统安全性。 |
4
zhuangzhuang1988 2020-11-23 21:54:52 +08:00
那就用老版本的 windows 吧
鬼知道这个软件用了啥 undocument api |
5
ShallowAi 2020-11-24 09:14:27 +08:00 via Android
退回 LTSB 或者 Win7 吧 这种兼容性真的不太好解决
|