Win11 26H2保留Win95内存管理兼容组件
微软在Windows 11 26H2中保留EmulateHeap兼容组件,其代码可追溯至Windows 95,用于处理旧应用释放后使用等内存问题,仅在应用被明确启用时加载,用户可通过Windows ADK查看。
驱动中国10月20日消息,科技媒体 Windows Latest 10月19日发布消息称,微软在 Windows 11 26H2 中仍保留名为 EmulateHeap 的兼容性修复组件,该组件可追溯至 Windows 95 时代。
EmulateHeap 的起源与早期《模拟城市》游戏的内存调用问题有关。Windows 3.x 版《模拟城市》存在“释放后使用”漏洞,程序在释放内存后仍继续读取该内存。旧系统不会立即回收内存,因此游戏可以正常运行。Windows 95 测试版改变内存管理方式后,这一行为导致游戏出现运行故障。
为解决该问题,微软没有要求游戏厂商修复程序,而是在 Windows 95 系统中加入特例代码。当系统检测到《模拟城市》运行时,代码会延迟释放内存。
在《模拟城市》特例之后,微软发现其他应用和游戏也存在类似需求。针对 Windows XP 系统,微软复制 Windows 95 内存堆管理器源码,重新编译并加入兼容性框架,形成 EmulateHeap。
在 Windows XP 中,旧程序调用 HeapCreate、LocalLock、GlobalReAlloc 等内存 API 时,EmulateHeap 会将请求重定向到模拟 Windows 95 的实现。
在 Windows 11 26H2 中,相关旧代码仅在某个应用被明确启用 EmulateHeap 时从硬盘加载。用户可通过 Windows ADK 中的兼容性管理器查看该修复项。