V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
升级到 Windows 11
laqow
V2EX  ›  Windows

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

  •  
  •   laqow · 2020-11-23 15:10:42 +08:00 · 1196 次点击
    这是一个创建于 372 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    可以试试运行 windowsdefender://exploitprotection,然后把选项全都关闭。不过这么做会降低系统安全性。
    zhuangzhuang1988
        4
    zhuangzhuang1988   2020-11-23 21:54:52 +08:00
    那就用老版本的 windows 吧
    鬼知道这个软件用了啥 undocument api
    ShallowAi
        5
    ShallowAi   2020-11-24 09:14:27 +08:00 via Android
    退回 LTSB 或者 Win7 吧 这种兼容性真的不太好解决
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1093 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 22:10 · PVG 06:10 · LAX 14:10 · JFK 17:10
    ♥ Do have faith in what you're doing.