Vue d’ensemble des considérations relatives à la compatibilité pour les programmes 32 bits sur les versions 64 bits de Windows

Cet article décrit les considérations et limitations relatives à la compatibilité pour les programmes 32 bits qui s’exécutent sur des versions 64 bits de Windows.

Produits concernés : Windows 10 - toutes les éditions, Windows Server 2012 R2
Numéro de l’article d’origine dans la base de connaissances : 896456

Résumé

Les versions 64 bits de Windows utilisent le sous-système Microsoft Windows-32-on-Windows-64 (WOW64) pour exécuter des programmes 32 bits sans modification. Les versions 64 bits de Windows ne fournissent pas de prise en charge des fichiers binaires 16 bits ou des pilotes 32 bits. Les programmes qui dépendent de fichiers binaires 16 bits ou de pilotes 32 bits ne peuvent pas s’exécuter sur les versions 64 bits de Windows, sauf si le fabricant du programme fournit une mise à jour pour celui-ci.

Il peut exister des considérations qui affectent la compatibilité ou les performances d’un programme. Vous pouvez déterminer si un programme aura des problèmes de compatibilité ou de performances en le testant sur l’une des versions 64 bits de Windows.

Cet article décrit certaines des considérations de compatibilité relatives à l’exécution de programmes 32 bits sur les versions 64 bits de Windows. Cet article ne compare pas les versions 32 bits et 64 bits de Windows, ni les différents systèmes d’exploitation 64 bits. Cet article suppose que vous comprenez la différence entre les fichiers binaires 32 bits et les fichiers binaires 64 bits.

Introduction

Les versions x64 de Microsoft Windows sont optimisées pour exécuter des programmes 64 bits natifs. En outre, les versions x64 de Windows utilisent le sous-système WOW64 pour exécuter des programmes 32 bits.

Exécution de programmes 32 bits

Le sous-système WOW64 permet aux programmes 32 bits de s’exécuter sans modification sur les versions x64 de Windows. Pour ce faire, le sous-système WOW64 crée un environnement 32 bits sur les versions x64 de Windows. Pour plus d’informations sur le sous-système WOW64, consultez la rubrique « Exécution d’applications 32 bits » dans la section Windows 64 bits de la documentation Microsoft Platform SDK. Pour afficher ce document, consultez le site web Microsoft suivant : Exécution d’applications 32 bits.

Considérations relatives aux performances des programmes

Le sous-système WOW64 crée un environnement 32 bits sur les versions x64 de Windows. Certains programmes 32 bits peuvent s’exécuter plus lentement sur ces systèmes d’exploitation que sur les versions 32 bits de Windows. Certains programmes 32 bits nécessitant une grande quantité de mémoire peuvent également présenter des performances accrues sur les versions x64 de Windows. Cette augmentation des performances est due au fait que les versions x64 de Windows prennent en charge plus de mémoire physique que les versions 32 bits de Windows.

Pour plus d’informations sur les différences de gestion de la mémoire entre les versions 64 bits et 32 bits de Windows, consultez la rubrique « Espace d’adressage virtuel » dans la section À propos de la gestion de la mémoire de la documentation Microsoft Platform SDK. Pour afficher ce document, consultez le site web Microsoft suivant : Espace d’adressage virtuel.

Restrictions du sous-système WOW64

Le sous-système WOW64 ne prend pas en charge les programmes suivants :

  • Programmes compilés pour les systèmes d’exploitation 16 bits
  • Programmes en mode noyau compilés pour les systèmes d’exploitation 32 bits

Programmes 16 bits

Les versions x64 de Windows ne prennent pas en charge les programmes 16 bits ou les composants de programmes 16 bits. L’émulation logicielle requise pour exécuter des programmes 16 bits sur la version x64 de Windows diminuerait considérablement les performances de ces programmes.

Un programme d’installation 16 bits est fréquemment utilisé pour installer et configurer un programme 32 bits. En outre, certains programmes 32 bits nécessitent que les composants 16 bits s’exécutent correctement. Bien que les programmes 32 bits nécessitant des composants 16 bits puissent s’exécuter correctement après leur installation, vous ne pouvez pas utiliser le programme d’installation 16 bits pour installer un programme 32 bits. Les programmes qui nécessitent des composants 16 bits ne peuvent pas s’exécuter sur les versions x64 de Windows.

Si un programme 32 bits nécessitant des composants 16 bits tente d’exécuter un fichier ou un composant 16 bits, le programme 32 bits consigne un message d’erreur dans le journal système. Le système d’exploitation permet ensuite au programme 32 bits de gérer l’erreur.

Pour déterminer si un programme nécessite un composant 16 bits, installez et exécutez le programme. Si le programme génère un message d’erreur, contactez son fabricant pour obtenir une mise à jour compatible avec les versions x64 de Windows.

Pilotes 32 bits

Les versions x64 de Windows ne prennent pas en charge les pilotes 32 bits. Tous les pilotes de périphérique matériel et les pilotes de programme doivent être compilés spécifiquement pour la version x64 de Windows.

Si un programme 32 bits tente d’installer un pilote 32 bits sur un ordinateur exécutant une version x64 de Windows, l’installation du pilote échoue. Lorsque ce comportement se produit, la version x64 de Windows signale une erreur au programme 32 bits.

Si un programme 32 bits tente d’enregistrer un pilote 32 bits pour le démarrage automatique sur un ordinateur exécutant une version x64 de Windows, le programme de démarrage système de l’ordinateur reconnaît que le pilote 32 bits n’est pas pris en charge. La version x64 de Windows ne démarre pas le pilote 32 bits, mais démarre les autres pilotes enregistrés.

Pour déterminer si un programme nécessite un pilote 32 bits, installez et exécutez le programme. Si le programme génère un message d’erreur, contactez son fabricant pour obtenir une mise à jour compatible avec les versions x64 de Windows.

Considérations supplémentaires

Redirection de Registre et de fichier

Le sous-système WOW64 isole les fichiers binaires 32 bits des fichiers binaires 64 bits en redirigeant les appels de Registre et certains appels de système de fichiers. Le sous-système WOW64 isole les fichiers binaires pour empêcher un binaire 32 bits d’accéder accidentellement aux données d’un binaire 64 bits. Par exemple, un fichier binaire 32 bits qui exécute un fichier .dll à partir du dossier %systemroot%\System32 peut tenter accidentellement d’accéder à un fichier .dll 64 bits avec lequel il n’est pas compatible. Pour éviter cela, le sous-système WOW64 redirige l’accès du dossier %systemroot%\System32 vers le dossier %systemroot%\SysWOW64. Cette redirection empêche les erreurs de compatibilité, car elle nécessite que le fichier .dll soit spécifiquement conçu pour fonctionner avec des programmes 32 bits.

Pour plus d’informations sur le système de fichiers et la redirection du Registre, consultez la rubrique « Exécution d’applications 32 bits » dans la section Windows 64 bits de la documentation Microsoft Platform SDK. Pour afficher ce document, consultez le site web Microsoft suivant : Exécution d’applications 32 bits.
Le sous-système WOW64 redirige les appels binaires 32 bits sans nécessiter de modifications des fichiers binaires 32 bits. Toutefois, vous pouvez voir des preuves de cette redirection lorsque vous effectuez certaines tâches. Par exemple, si vous tapez un script de ligne de commande à l’invite de commandes 64 bits, il se peut que cette dernière ne puisse pas accéder aux programmes 32 bits du dossier Program Files. Le sous-système WOW64 redirige et installe les programmes 32 bits dans le dossier Program Files (x86). Pour accéder au dossier approprié, vous devez modifier le script de ligne de commande. Vous devez également taper le script de ligne de commande à l’invite de commandes 32 bits. L’invite de commandes 32 bits redirige automatiquement les appels du système de fichiers vers le répertoire 32 bits approprié.

Pour démarrer une invite de commandes 32 bits, procédez comme suit :

  • Cliquez sur Démarrer puis sur Exécuter, tapez %windir%\SysWoW64\cmd.exe, puis cliquez sur OK.

Vérification de version

Certains programmes 32 bits examinent les informations de version du système d’exploitation. De nombreux programmes 32 bits qui effectuent cette vérification ne reconnaissent pas les versions x64 de Windows comme des systèmes d’exploitation compatibles. Lorsque ce comportement se produit, le programme 32 bits génère une erreur de vérification de version avant de se fermer. Si ce comportement se produit, contactez le fabricant du programme 32 bits pour obtenir une mise à jour compatible avec les versions x64 de Windows.

Microsoft .NET Framework

Un programme compilé avec Microsoft .NET Framework s’exécute en tant que programme 32 bits dans le sous-système WOW64 si les conditions suivantes sont remplies :

  • Le bit ILONLY est défini dans les informations d’en-tête du programme.
  • Le programme a été compilé avec Microsoft .NET Framework 1.1. Si le bit ILONLY n’est pas défini dans les informations d’en-tête du programme ou si le programme a été compilé avec Microsoft .NET Framework version 2.0, le programme s’exécute en tant que programme 64 bits natif.

OpenGL

Les versions x64 de Windows n’incluent pas de pilote graphique OpenGL. Contactez le fabricant de l’appareil pour obtenir un pilote compatible avec les versions x64 de Windows.

Microsoft Management Console (MMC)

Les versions x64 de Windows utilisent la version 64 bits de Microsoft Management Console (MMC) pour exécuter différents composants logiciels enfichables. Toutefois, vous pouvez parfois exiger la version 32 bits de MMC pour exécuter des composants logiciels enfichables dans le sous-système WOW64. Pour plus d’informations sur le comportement de MMC dans les versions x64 de Windows, consultez la rubrique « Exécution de composants logiciels enfichables 32 bits et 64 bits dans Windows 64 bits » dans la section Utilisation de MMC 2.0 de la documentation Microsoft Platform SDK. Pour afficher ce document, consultez le site web Microsoft suivant : Exécution de composants logiciels enfichables 32 bits et 64 bits dans Windows 64 bits.

Considérations relatives à x64

Les versions x64 de Windows prennent en charge les instructions 32 bits et 64 bits. Le sous-système WOW64 peut exécuter des programmes 32 bits en mode natif 64 bits en basculant le mode natif du processeur. Des couches matérielles ou logicielles distinctes ne sont pas requises. Il se peut que les performances ne diminuent pas lorsque vous exécutez un programme 32 bits sur les versions x64 de Windows.

Pour plus d’informations sur les performances d’un processeur x64, contactez le fabricant du processeur ou rendez-vous sur le site web du fabricant. Les informations et la solution décrites dans ce document représentent l’opinion actuelle de Microsoft Corporation à la date de publication. Cette solution est disponible par le biais de Microsoft ou d’un fournisseur tiers. Microsoft ne recommande aucun fournisseur tiers ou solution tierce spécifique mentionné dans cet article. Il peut exister également d’autres fournisseurs tiers ou solutions tierces non mentionnés dans cet article. Microsoft étant tenue de répondre aux évolutions du marché, ces informations ne doivent pas être interprétées comme un engagement de la part de Microsoft. Microsoft ne peut garantir l’exactitude des informations ou des solutions présentées par Microsoft ou par tout fournisseur tiers mentionné.

Microsoft ne fournit aucune garantie et exclut toute représentation, garantie et condition explicite, implicite ou prévue par la loi, y compris les représentations, garanties ou conditions de titre, absence de contrefaçon, condition satisfaisante, qualité marchande et adéquation à un usage particulier relatifs aux services, solutions, produits ou autres informations. En aucun cas, Microsoft ne sera tenue responsable des solutions tierces mentionnées dans cet article.

References

Pour plus d’informations sur le processeur AMD64, consultez le site web Advanced Micro Devices suivant : site web AMD
Microsoft fournit des informations de contact de sociétés tierces afin de vous aider à obtenir un support technique. Ces informations de contact peuvent être modifiées sans préavis. Microsoft ne garantit pas l’exactitude des informations concernant les sociétés tierces.

Pour plus d’informations sur le développement de programmes pour les versions Itanium de Windows Server 2003 et de Windows XP, consultez le site web Microsoft suivant : Présentation du développement d’applications pour Windows 64 bits sur Itanium

Les produits tiers mentionnés dans le présent article sont fabriqués par des sociétés indépendantes de Microsoft. Microsoft exclut toute garantie, implicite ou autre, concernant les performances ou la fiabilité de ces produits.