Content
Windows 95 程式碼如何延續至 Windows 11
MS 為 SimCity 修改了 Windows 95 的記憶體管理機制
MS 為舊版應用程式重新編譯 Windows 95 堆積管理員
如何在 Windows 11 中找到 EmulateHeap
EmulateHeap 在現代系統上仍有限制
Windows 11 為何至今仍包含 Windows 95 的隱藏記憶體管理器
時間 Oct, 19, 2026

Windows 95 程式碼如何延續至 Windows 11

Windows 95 程式碼如何延續至 Windows 11

Windows 11 至今仍包含一部分可正常運作的 Windows 95 核心。名為 EmulateHeap 的相容性修正程式,能讓某些較舊的應用程式獲得近似 Windows 95 較寬容之記憶體管理員的行為。這項修正程式目前仍列於 Windows 11 26H2 系統中。

這種對回溯相容性的堅持可追溯至 SimCity。當年 MS 為其建立特殊的作業系統程式碼後,這款遊戲才能在 Windows 95 上正常執行。

EmulateHeap 是一項執行 Windows 95 堆積管理員的相容性修正程式,在 Windows 11 26H2 中仍可使用

MS 為 SimCity 修改了 Windows 95 的記憶體管理機制

應用程式執行時會向 Windows 要求記憶體,並在不再需要時釋放該記憶體。在記憶體釋放後繼續讀取,是一種稱為釋放後使用的程式錯誤,而最初為 Windows 3.x 推出的 SimCity 就存在這項缺陷。

Stack Overflow 共同創辦人暨前 MS 工程師 Joel Spolsky,在 2000 年的一篇文章中描述了這個問題,並引用開發該版本 SimCity 的 Jon Ross 所述內容。Ross 承認,遊戲會在釋放記憶體後立即誤讀該記憶體。由於那些記憶體中的內容在 Windows 3.x 上仍然可供存取,因此這個問題一直未被察覺。

Windows 95 版 SimCity 2000 特別版

SimCity 在 Windows 95 測試版上無法正常運作。MS 並未等待遊戲推出修補程式,而是加入一段程式碼,用來偵測 SimCity 是否正在執行,並讓記憶體配置器進入不會立即釋放記憶體的特殊模式。

實際上,MS 修改了 Windows,以彌補單一遊戲中的程式錯誤。

MS 為舊版應用程式重新編譯 Windows 95 堆積管理員

SimCity 的因應方案原本是針對單一程式設計,但其他應用程式也依賴類似行為。MS 工程師 Raymond Chen 在 2010 年的 Windows Confidential 專欄中解釋,有些軟體依賴 Windows 95 堆積的特殊行為,包括能夠讀取已釋放的記憶體,並發現其中先前的數值仍未改變。

由於較新版本的 Windows 以不同方式處理記憶體,這些應用程式可能會在後續的 Windows 版本上當機。

Windows 95 光碟

MS 透過 EmulateHeap 解決了這個問題。這項相容性修正程式會將應用程式與堆積相關的呼叫,包括從 HeapCreate 到 LocalLock 與 GlobalReAlloc 等函式,重新導向至可重現 Windows 95 行為的替代實作。

Chen 將這項解決方案形容為極其簡單卻又非常罕見:MS 取出 Windows 95 堆積管理員的原始碼,重新編譯後整合至應用程式相容性基礎架構中。

因此,Windows 95 核心中相當大的一部分存在於 Windows 應用程式相容性架構內。不過,只有在特定應用程式啟用 EmulateHeap 時,這段舊版程式碼才會從儲存裝置載入。Windows 11 並不會持續在背景執行 Windows 95 程式碼。

EmulateHeap 與最初針對 SimCity 的因應方案並不相同。兩者都反映出 MS 對回溯相容性的高度重視,之後 Windows XP 隱藏的應用程式修正資料庫也展現了這一點,但兩者是不同的解決方案。

如何在 Windows 11 中找到 EmulateHeap

您可以透過 Compatibility Administrator 查看 EmulateHeap。這是 MS 為 IT 系統管理員提供的免費工具,可列出 Windows 內建的相容性修正程式。MS 將相容性修正程式(又稱 shim)定義為一小段可攔截應用程式 API 呼叫的程式碼。

Compatibility Administrator 包含在 Windows 評定及部署套件(ADK)中。2026 年 9 月版本正式支援 Windows 11 26H2,您可以透過以下步驟找到 EmulateHeap:

  1. 安裝 Windows ADK,並選取 Application Compatibility Tools。

    在 Windows 評定及部署套件中選取 Application Compatibility Tools
  2. 從「開始」功能表開啟 32 位元 Compatibility Administrator。

    開始功能表中的 32 位元 Compatibility Administrator 項目
  3. 建立新的相容性資料庫。

    建立新的相容性資料庫
  4. 檢視可用的相容性修正程式並找到 EmulateHeap。

    Windows 11 26H2 的 Compatibility Administrator 相容性修正程式清單中的 EmulateHeap

EmulateHeap 在現代系統上仍有限制

相容性修正程式的存在,並不保證它在所有情況下都能正常運作。Windows 11 22H2 更新推出後,有使用者回報啟用這項 shim 會導致 GTA:罪惡城市等遊戲失去音效,而極速快感:全民公敵則可能當機。

MS 正以 WinUI 3 取代源自 Windows 95 時代的「內容」對話方塊,卻仍為少數舊版應用程式保留 Windows 95 堆積管理員。不過,這種程度的相容性工作並未延伸至 3D 彈珠台;該遊戲因一項 64 位元錯誤而遭移除,因為開發團隊認為無法合理投入數天時間進行修正。

2
Live Chat