资讯动态

  • Home
  • 微软在Win11 26H2中保留了Win95内存管理器的遗留代码

微软在Win11 26H2中保留了Win95内存管理器的遗留代码

2026-10-20 9136

科技媒体Windows Latest于10月19日报道,微软在最新的Windows 11版本26H2中仍然保留了一个名为EmulateHeap的兼容性修复组件,该组件源自早期的Windows 95。EmulateHeap用于模拟Windows 95的内存管理,并且仍然可在当前系统中找到。

这一组件的历史可以追溯到早期的Windows 3.x版游戏《模拟城市》,该游戏曾经遇到“释放后使用”的内存漏洞问题。这意味着在内存被释放后,程序依然试图读取这部分内存。虽然旧系统的内存管理不会立即回收内存,因此该游戏在此前版本中能正常运行,但在Windows 95测试版中,由于内存管理方式的改变,导致游戏出现了故障。

为了解决这一问题,微软并没有要求游戏开发商进行修复,而是在Windows 95中引入了特例代码,在运行《模拟城市》时延迟释放内存。在此之后,微软意识到还有其他应用和游戏也需要这种特殊处理,因此在Windows XP中复制了Windows 95的内存堆管理器代码,重新编译后形成EmulateHeap。

在Windows XP系统中,当旧程序调用内存API(如HeapCreate、LocalLock、GlobalReAlloc)时,EmulateHeap会将其重定向到模拟的Windows 95实现。而在当前的Windows 11中,只有在某个应用明确启用了EmulateHeap时,相关的旧代码才会被加载。用户可以通过Windows ADK中的“兼容性管理器”查看这一修复。

发表评论