Comment du code de Windows 95 subsiste encore dans Windows 11

Windows 11 comprend toujours une partie fonctionnelle du noyau de Windows 95. Un correctif de compatibilité appelé EmulateHeap permet à certaines applications anciennes de bénéficier d’un comportement qui reproduit celui du gestionnaire de mémoire plus permissif de Windows 95. Ce correctif figure toujours dans les systèmes Windows 11 26H2.
Cet engagement en faveur de la rétrocompatibilité remonte à SimCity, qui n’a pu fonctionner correctement sous Windows 95 qu’après la création par MS d’un code spécial au sein du système d’exploitation.

MS a modifié la gestion de la mémoire de Windows 95 pour SimCity
Lorsqu’elles s’exécutent, les applications demandent de la mémoire à Windows, puis la libèrent lorsqu’elles n’en ont plus besoin. Lire de la mémoire après sa libération est un bug appelé utilisation après libération, et la version originale de SimCity pour Windows 3.x comportait une telle faille.
Joel Spolsky, cofondateur de Stack Overflow et ancien ingénieur chez MS, a décrit le problème dans un essai publié en 2000, dans lequel il citait Jon Ross, développeur de cette version de SimCity. Ross a reconnu que le jeu lisait par erreur la mémoire immédiatement après l’avoir libérée. Le problème était passé inaperçu sous Windows 3.x, car le contenu de cette mémoire restait accessible.

SimCity a cessé de fonctionner correctement sur les versions bêta de Windows 95. Plutôt que d’attendre la publication d’un correctif pour le jeu, MS a ajouté du code qui détectait l’exécution de SimCity et plaçait l’allocateur de mémoire dans un mode spécial ne libérant pas immédiatement la mémoire.
En pratique, MS a modifié Windows afin de compenser un bug présent dans un seul jeu.
MS a recompilé le gestionnaire de tas de Windows 95 pour les applications anciennes
La solution de contournement destinée à SimCity avait été conçue pour un seul programme, mais d’autres applications reposaient sur un comportement similaire. L’ingénieur de MS Raymond Chen a expliqué, dans une chronique Windows Confidential publiée en 2010, que certains logiciels dépendaient de particularités du tas de Windows 95, notamment de la possibilité de lire de la mémoire libérée et d’y retrouver les valeurs précédentes inchangées.
Ces applications pouvaient planter sur les versions ultérieures de Windows, car celles-ci géraient la mémoire différemment.

MS a résolu ce problème avec EmulateHeap. Ce correctif de compatibilité redirige les appels d’une application liés au tas—y compris des fonctions allant de HeapCreate à LocalLock et GlobalReAlloc—vers des implémentations de remplacement qui reproduisent le comportement de Windows 95.
Chen a décrit cette solution comme étant à la fois extrêmement simple et très inhabituelle : MS a repris le code source du gestionnaire de tas de Windows 95, l’a recompilé et l’a intégré à l’infrastructure de compatibilité des applications.
Par conséquent, une partie importante du noyau de Windows 95 existe au sein de l’infrastructure de compatibilité des applications Windows. Toutefois, cet ancien code n’est chargé depuis le stockage que lorsque EmulateHeap est activé pour une application précise. Windows 11 n’exécute donc pas en permanence du code de Windows 95 en arrière-plan.
EmulateHeap est distinct de la solution de contournement originale destinée à SimCity. Les deux illustrent l’importance considérable accordée par MS à la rétrocompatibilité, comme l’a ensuite montré la base de données cachée de correctifs d’applications de Windows XP, mais il s’agit de solutions différentes.
Comment trouver EmulateHeap sous Windows 11
EmulateHeap peut être consulté à l’aide de l’Administrateur de compatibilité, l’outil gratuit de MS destiné aux administrateurs informatiques qui répertorie les correctifs de compatibilité inclus avec Windows. MS définit un correctif de compatibilité, également appelé shim, comme un petit élément de code qui intercepte les appels d’API effectués par les applications.
L’Administrateur de compatibilité est inclus dans le Kit de déploiement et d’évaluation Windows (ADK). La version de septembre 2026 prend officiellement en charge Windows 11 26H2, où EmulateHeap peut être trouvé en suivant la procédure ci-dessous :
Installez le Windows ADK et sélectionnez Outils de compatibilité des applications.

Ouvrez l’Administrateur de compatibilité 32 bits depuis le menu Démarrer.

Créez une nouvelle base de données de compatibilité.

Consultez les correctifs de compatibilité disponibles et recherchez EmulateHeap.

EmulateHeap présente des limites sur les systèmes modernes
La présence d’un correctif de compatibilité ne garantit pas son bon fonctionnement dans toutes les situations. Après la mise à jour Windows 11 22H2, des utilisateurs ont signalé que l’activation du shim entraînait la perte du son dans des jeux tels que GTA: Vice City, tandis que Need for Speed: Most Wanted pouvait planter.
MS remplace par WinUI 3 la boîte de dialogue Propriétés héritée de l’époque de Windows 95, mais continue de conserver le gestionnaire de tas de Windows 95 pour un petit nombre d’applications anciennes. Ce niveau d’effort en matière de compatibilité n’a pas été consacré à 3D Pinball, qui a été supprimé en raison d’un bug 64 bits dont la correction aurait nécessité plusieurs jours de travail que l’équipe de développement ne pouvait pas justifier.

