Waarom Windows 11 nog steeds de geheugenbeheerder van Windows 95 bevat

Het zal je waarschijnlijk niet verbazen om te horen dat Windows 11 nog steeds een werkend onderdeel van de Windows 95-kernel bevat. Een compatibiliteitsfix genaamd EmulateHeap voorziet oude applicaties van de geheugenbeheerder van Windows 95 wanneer zij afhankelijk zijn van de coulantie daarvan. Je kunt deze functionaliteit vandaag de dag nog vinden op een pc met Windows 11 26H2.

Deze traditie gaat terug naar SimCity, dat alleen op Windows 95 draaide omdat Microsoft er speciale code voor schreef.

Microsoft paste het geheugenbeheer van Windows 95 aan voor SimCity

Applicaties vragen om geheugen terwijl ze draaien en geven dit weer vrij wanneer ze klaar zijn. Als dat geheugen nog steeds wordt gelezen nadat het is vrijgegeven, is er sprake van een bug die bekendstaat als use-after-free. De originele SimCity voor Windows 3.x had zo'n bug.

Joel Spolsky, mede-oprichter van Stack Overflow en voormalig Microsoft-engineer, deelde dit verhaal in een essay uit 2000. Hij citeerde Jon Ross, die die versie van SimCity schreef. Ross gaf toe dat hij per ongeluk een bug had achtergelaten waarbij het spel "geheugen las dat hij net had vrijgegeven". Spolsky legt uit waarom niemand dit merkte: "Het werkte prima op Windows 3.x, omdat het geheugen nooit echt verdween."

SimCity werkte echter niet op de bètaversies van Windows 95. In plaats van te wachten op een gepatchte versie van het spel, voegde Microsoft code toe aan Windows 95 die specifiek zocht naar SimCity. "Als het systeem ontdekt dat SimCity wordt uitgevoerd, draait het de geheugenallocator in een speciale modus die het geheugen niet onmiddellijk vrijgeeft," schreef Spolsky.

Microsoft heeft dus het besturingssysteem aangepast om de bug van één specifiek spel te maskeren.

Microsoft compileerde de heap manager van Windows 95 opnieuw om oude apps in leven te houden

De SimCity-hack was een eenmalige actie, maar andere applicaties maakten soortgelijke aannames. Microsoft-engineer Raymond Chen legde in zijn column Windows Confidential uit in 2010 dat sommige programma's gebruikmaakten van de eigenaardigheden van de Windows 95-heap, zoals het lezen van vrijgegeven geheugen in de verwachting dat de oude waarden nog aanwezig waren.

Voor die applicaties betekende dit dat ze crashten op latere versies van Windows, die het geheugen anders beheren.

De oplossing hiervoor was EmulateHeap. Deze fix lost het probleem op door de heap-aanroepen van een applicatie — "van HeapCreate naar LocalLock naar GlobalReAlloc en alles daartussenin" — om te leiden naar vervangers die Windows 95 nabootsen. Chen beschrijft dit als "extreem simpel" maar "volledig krankzinnig". Nog gekker is de manier waarop Microsoft het heeft gebouwd:

"...ze namen simpelweg een kopie van de broncode van de Windows 95 Heap Manager, compileerden deze opnieuw en voegden deze toe aan de compatibiliteitsinfrastructuur."

Met de woorden van Chen: "er is een kopie van een aanzienlijk deel van de Windows 95-kernel aanwezig in het compatibiliteitsframework voor Windows-applicaties." Chen merkt op dat de oude code alleen vanaf de harde schijf wordt geladen wanneer EmulateHeap is ingeschakeld voor een applicatie, dus je pc draait niet stilletjes Windows 95 op de achtergrond.

Om duidelijk te zijn: EmulateHeap is niet dezelfde code die Microsoft voor SimCity schreef. Beiden komen voort uit de obsessie met compatibiliteit achter de verborgen database met app-fixes van Windows XP, maar het zijn aparte fixes.

Zo vind je EmulateHeap in de Compatibility Administrator op Windows 11

Je kunt EmulateHeap terugvinden in de Compatibility Administrator, een gratis Microsoft-tool voor IT-beheerders die een lijst bevat van de compatibiliteitsfixes die in Windows zijn ingebouwd. Microsoft beschrijft een compatibiliteitsfix (of shim) als "een klein stukje code dat API-aanroepen van applicaties onderschept."

De Compatibility Administrator maakt deel uit van de Windows Assessment and Deployment Kit (ADK), en de release van september 2026 ondersteunt officieel Windows 11 26H2. Op een 26H2-pc kun je EmulateHeap vinden via deze stappen:

  1. Download de Windows ADK van Microsoft en start de installatie.
  2. Selecteer alleen "Application Compatibility Tools" in de lijst met functies en voltooi de installatie.
  3. Zoek in het Startmenu naar "Compatibility Administrator" en open de 32-bit versie, aangezien de meeste apps uit het Windows 95-tijdperk 32-bit zijn.
  4. Klik onder "Custom Databases" met de rechtermuisknop op "New Database" en selecteer "Create New" > "Compatibility Mode".
  5. Scroll door de lijst met beschikbare compatibiliteitsfixes naar EmulateHeap.

Natuurlijk is een vermelde fix niet automatisch een werkende fix. Na de Windows 11 22H2-update meldden gebruikers dat games zoals GTA Vice City geluid verloren en Need for Speed: Most Wanted crashte wanneer de shim was ingeschakeld.

Ironisch genoeg vervangt Microsoft het eigenschappenvenster uit het Windows 95-tijdperk door WinUI 3, terwijl het de heap manager van Windows 95 behoudt voor een handvol oude applicaties. Microsoft was echter niet genereus genoeg om deze inspanning uit te breiden naar 3D Pinball; dit spel werd verwijderd vanwege een 64-bit bug waar het team geen dagen aan kon besteden.