Partager via


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

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

Numéro de base de connaissances d’origine : 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 prennent pas en charge les fichiers binaires 16 bits ou les 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 le programme.

Il peut y avoir 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 testant le programme 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 systèmes d’exploitation 64 bits différents. 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. Le sous-système WOW64 effectue cette opération en créant 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 du Kit de développement logiciel (SDK) de plateforme Microsoft. Pour afficher ce document, visitez le site web Microsoft suivant : Exécution d’applications 32 bits.

Considérations relatives aux performances du programme

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 lents sur ces systèmes d’exploitation que sur les versions 32 bits de Windows. Par ailleurs, certains programmes 32 bits qui nécessitent beaucoup de mémoires peuvent présenter des performances accrues sur les versions x64 de Windows. Cette augmentation des performances se produit, car 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 du Kit de développement logiciel (SDK) de la plateforme Microsoft. Pour afficher ce document, visitez 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 programme 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 l’exécution correcte des composants 16 bits. Bien que les programmes 32 bits qui nécessitent 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 des versions x64 de Windows.

Si un programme 32 bits qui nécessite des composants 16 bits tente d’exécuter un fichier ou un composant 16 bits, le programme 32 bits enregistre 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 le fabricant du programme pour 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ériques matériels et 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’inscrire un pilote 32 bits pour le démarrage automatique sur un ordinateur exécutant une version x64 de Windows, le chargeur de démarrage sur 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 inscrits.

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 le fabricant du programme pour une mise à jour compatible avec les versions x64 de Windows.

Considérations supplémentaires

Redirection de registre et de fichiers

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 qui n’est pas compatible avec le fichier binaire 32 bits. 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 le fichier .dll doit être spécifiquement conçu pour fonctionner avec des programmes 32 bits.

Pour plus d’informations sur la redirection du système de fichiers et du Registre, consultez la rubrique « Exécution d’applications 32 bits » dans la section Windows 64 bits de la documentation du Kit de développement logiciel (SDK) de plateforme Microsoft. Pour afficher ce document, visitez 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 apportées aux 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 à une invite de commandes 64 bits, l’invite de commandes peut ne pas être en mesure d’accéder aux programmes 32 bits dans le dossier Program Files. Le sous-système WOW64 redirige et installe des 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 à une invite de commandes 32 bits. L’invite de commandes 32 bits redirige automatiquement les appels de 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, cliquez sur Exécuter, tapez %windir%\SysWoW64\cmd.exe, puis cliquez sur OK.

Vérification de la 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 en tant que systèmes d’exploitation compatibles. Lorsque ce comportement se produit, le programme 32 bits génère une erreur de vérification de version, puis ferme. Si ce comportement se produit, contactez le fabricant du programme 32 bits pour une mise à jour compatible avec les versions x64 de Windows.

The 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 programme a défini le bit ILONLY dans les informations d’en-tête.
  • Le programme a été compilé avec Microsoft .NET Framework 1.1. Si le programme n’a pas défini le bit ILONLY dans les informations d’en-tête 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 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 que la version 32 bits de MMC exécute des composants logiciels enfichables dans le sous-système WOW64. Pour plus d’informations sur le comportement de MMC sur 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 du Kit de développement logiciel (SDK) de plateforme Microsoft. Pour afficher ce document, visitez le site Web Microsoft suivant : Exécution de composants logiciels enfichables 32 bits et 64 bits dans Windows 64 bits

Considérations relatives aux x64

Les versions x64 de Windows prennent en charge les instructions 32 bits et les instructions 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. Les couches matérielles ou logicielles distinctes ne sont pas requises. Vous ne pouvez pas rencontrer de performances réduites 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 visitez 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, Celles-ci incluent, mais elles ne sont pas limitées aux représentations, aux garanties ou aux conditions de titre, de non-violation, de condition satisfaisante, de qualité marchande et d’adéquation à un usage particulier, en ce qui concerne tout service, solution, produit ou tout autre matériel ou information. 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, visitez le site web Advanced Micro Devices suivant : Site web AMD
Microsoft fournit les informations de contacts tiers pour vous aider à trouver un support technique. Ces informations de contact peuvent changer sans préavis. Microsoft ne garantit pas l’exactitude des informations concernant ces contacts tiers.

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

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.