Información general sobre las consideraciones de compatibilidad para programas de 32 bits en versiones de 64 bits de Windows

En este artículo se describen las consideraciones y limitaciones de compatibilidad de los programas de 32 bits que se ejecutan en versiones de 64 bits de Windows.

Se aplica a: Windows 10: todas las ediciones, Windows Server 2012 R2
Número KB original: 896456

Resumen

Las versiones de 64 bits de Windows usan el subsistema Microsoft Windows-32-on-Windows-64 (WOW64) para ejecutar programas de 32 bits sin modificaciones. Las versiones de 64 bits de Windows no admiten archivos binarios de 16 bits o controladores de 32 bits. Los programas que dependen de archivos binarios de 16 bits o controladores de 32 bits no se pueden ejecutar en las versiones de 64 bits de Windows a menos que el fabricante del programa proporcione una actualización para este.

Puede haber consideraciones que afecten a la compatibilidad o el rendimiento de un programa. Para determinar si un programa tendrá problemas de compatibilidad o rendimiento, pruébelo en una de las versiones de 64 bits de Windows.

En este artículo se describen algunas de las consideraciones de compatibilidad para ejecutar programas de 32 bits en las versiones de 64 bits de Windows. En este artículo no se comparan las versiones de 32 y 64 bits de Windows ni los distintos sistemas operativos de 64 bits. En este artículo se supone que comprende la diferencia entre los archivos binarios de 32 bits y los binarios de 64 bits.

Introducción

Las versiones basadas en x64 de Microsoft Windows están optimizadas para ejecutar programas nativos de 64 bits. Además, las versiones basadas en x64 de Windows usan el subsistema WOW64 para ejecutar programas de 32 bits.

Ejecución de programas de 32 bits

El subsistema WOW64 permite que los programas de 32 bits se ejecuten sin modificaciones en las versiones basadas en x64 de Windows. Para ello, el subsistema WOW64 crea un entorno de 32 bits en las versiones basadas en x64 de Windows. Para obtener más información sobre el subsistema WOW64, consulte el tema Ejecución de aplicaciones de 32 bits en la sección de Windows de 64 bits de la documentación del SDK de plataforma de Microsoft. Para ver este documento, visite el siguiente sitio web de Microsoft: Ejecución de aplicaciones de 32 bits.

Consideraciones sobre el rendimiento del programa

El subsistema WOW64 crea un entorno de 32 bits en las versiones basadas en x64 de Windows. Algunos programas de 32 bits pueden ejecutarse más lentos en estos sistemas operativos que en las versiones de 32 bits de Windows. De forma alternativa, algunos programas de 32 bits que requieren mucha memoria pueden mostrar un mayor rendimiento en las versiones basadas en x64 de Windows. Este aumento del rendimiento se produce porque las versiones basadas en x64 de Windows admiten más memoria física que las de 32 bits.

Para obtener más información sobre las diferencias en la administración de memoria entre las versiones de 64 y 32 bits de Windows, consulte el tema Espacio de direcciones virtuales en la sección Sobre la administración de memoria de la documentación del SDK de plataforma de Microsoft. Para ver este documento, visite el siguiente sitio web de Microsoft: Espacio de direcciones virtuales

Restricciones del subsistema WOW64

El subsistema WOW64 no admite los siguientes programas:

  • Programas compilados para sistemas operativos de 16 bits
  • Programas en modo kernel compilados para sistemas operativos de 32 bits

Programas de 16 bits

Las versiones basadas en x64 de Windows no admiten programas de 16 bits ni componentes de estos. La emulación de software necesaria para ejecutar programas de 16 bits en la versión basada en x64 de Windows reduciría significativamente el rendimiento de esos programas.

Un instalador de 16 bits se usa con frecuencia para instalar y configurar un programa de 32 bits. Además, algunos programas de 32 bits requieren componentes de 16 bits para ejecutarse correctamente. Aunque los programas de 32 bits que requieren componentes de 16 bits pueden ejecutarse correctamente después de instalarse, no puede usar el instalador de un programa de 16 bits para instalar uno de 32. Los programas que requieren componentes de 16 bits no se pueden ejecutar en versiones basadas en x64 de Windows.

Si un programa de 32 bits que requiere componentes de 16 bits intenta ejecutar un archivo o componente de 16 bits, el programa de 32 registrará un mensaje de error en el registro del sistema. Entonces, el sistema operativo permitirá que el programa de 32 bits controle el error.

Para determinar si un programa requiere un componente de 16 bits, instale y ejecute el programa. Si el programa genera un mensaje de error, póngase en contacto con su fabricante para obtener una actualización compatible con las versiones basadas en x64 de Windows.

Controladores de 32 bits

Las versiones basadas en x64 de Windows no admiten controladores de 32 bits. Todos los controladores de dispositivo de hardware y controladores de programa deben compilarse específicamente para la versión basada en x64 de Windows.

Si un programa de 32 bits intenta instalar un controlador de 32 bits en un equipo que ejecuta una versión basada en x64 de Windows, se produce un error en la instalación del controlador. Cuando ocurre este comportamiento, la versión basada en x64 de Windows notifica un error al programa de 32 bits.

Si un programa de 32 bits intenta registrar un controlador de 32 bits para el inicio automático en un equipo que ejecuta una versión de Windows basada en x64, el cargador de arranque del equipo reconoce que el controlador de 32 bits no es compatible. La versión de Windows basada en x64 no inicia el controlador de 32 bits, pero inicia los otros controladores registrados.

Para determinar si un programa necesita un controlador de 32 bits, instale y ejecute el programa. Si el programa genera un mensaje de error, póngase en contacto con su fabricante para obtener una actualización compatible con las versiones basadas en x64 de Windows.

Consideraciones adicionales

Redireccionamiento del Registro y de archivos

El subsistema WOW64 aísla los archivos binarios de 32 bits de los binarios de 64 bits redirigiendo las llamadas al Registro y algunas llamadas al sistema de archivos. El subsistema WOW64 aísla los archivos binarios para evitar que un binario de 32 bits acceda accidentalmente a los datos desde un binario de 64 bits. Por ejemplo, un binario de 32 bits que ejecuta un archivo .dll desde la carpeta %systemroot%\System32 podría intentar acceder accidentalmente a un archivo .dll de 64 bits que no es compatible con el binario de 32 bits. Para evitarlo, el subsistema WOW64 redirige el acceso desde la carpeta %systemroot%\System32 a la carpeta %systemroot%\SysWOW64. Este redireccionamiento evita errores de compatibilidad porque necesita que el archivo .dll esté diseñado específicamente para trabajar con programas de 32 bits.

Para obtener más información sobre el sistema de archivos y el redireccionamiento del Registro, consulte el tema "Ejecución de aplicaciones de 32 bits" en la sección Windows de 64 bits de la documentación del SDK de la Plataforma Microsoft. Para consultar este documento, visite el siguiente sitio web de Microsoft: Ejecución de aplicaciones de 32 bits
El subsistema WOW64 redirige las llamadas binarias de 32 bits sin necesidad de cambios en los archivos binarios de 32 bits. Sin embargo, es posible que vea evidencias de este redireccionamiento al realizar algunas tareas. Por ejemplo, si escribe un script de línea de comandos en un símbolo del sistema de 64 bits, es posible que el símbolo del sistema no pueda acceder a programas de 32 bits en la carpeta Archivos de programa. El subsistema WOW64 redirige e instala programas de 32 bits en la carpeta Archivos de programa (x86). Para acceder a la carpeta correcta, debe cambiar el script de la línea de comandos. Como alternativa, debe escribir el script de la línea de comandos en un símbolo del sistema de 32 bits. El símbolo del sistema de 32 bits redirige automáticamente las llamadas del sistema de archivos al directorio de 32 bits correcto.

Para abrir un símbolo del sistema de 32 bits, haga lo siguiente:

  • Haga clic en Inicio y en Ejecutar, escriba %windir%\SysWoW64\cmd.exe y haga clic en Aceptar.

Comprobación de versión

Algunos programas de 32 bits examinan la información de versión del sistema operativo. Muchos programas de 32 bits que realizan esta comprobación no reconocen las versiones de Windows basadas en x64 como sistemas operativos compatibles. Cuando se produce este comportamiento, el programa de 32 bits generará un error de comprobación de versión y, después, se cerrará. Si se produce este comportamiento, póngase en contacto con el fabricante del programa de 32 bits para obtener una actualización compatible con las versiones de Windows basadas en x64.

Microsoft .NET Framework

Un programa compilado con Microsoft .NET Framework se ejecutará como un programa de 32 bits en el subsistema WOW64 si se cumplen las condiciones siguientes:

  • El programa tiene el bit ILONLY establecido en la información de encabezado.
  • El programa se compiló con Microsoft .NET Framework 1.1. Si el programa no tiene el bit ILONLY establecido en la información de encabezado o si el programa se compiló con Microsoft .NET Framework versión 2.0, el programa se ejecutará como un programa nativo de 64 bits.

OpenGL

Las versiones de Windows basadas en x64 no incluyen un controlador de gráficos OpenGL. Póngase en contacto con el fabricante del dispositivo para obtener un controlador compatible con las versiones de Windows basadas en x64.

Microsoft Management Console (MMC)

Las versiones de Windows basadas en x64 usan la versión de 64 bits de Microsoft Management Console (MMC) para ejecutar varios complementos. Sin embargo, es posible que en ocasiones necesite la versión de 32 bits de MMC para ejecutar complementos en el subsistema WOW64. Para obtener más información sobre el comportamiento de MMC en las versiones de Windows basadas en x64, consulte el tema "Ejecución de complementos de 32 y 64 bits en Windows de 64 bits" en la sección Uso de MMC 2.0 de la documentación del SDK de la Plataforma Microsoft. Para consultar este documento, visite el siguiente sitio web de Microsoft: Ejecución de complementos de 32 y 64 bits en Windows de 64 bits

Consideraciones de x64

Las versiones de Windows basadas en x64 son compatibles con instrucciones de 32 bits e instrucciones de 64 bits. El subsistema WOW64 puede ejecutar programas de 32 bits en modo nativo de 64 bits cambiando el modo nativo del procesador. No son necesarias capas de hardware o software independientes. Es posible que no experimente un rendimiento reducido al ejecutar un programa de 32 bits en las versiones de Windows basadas en x64.

Para obtener más información sobre el rendimiento de un procesador basado en x64, póngase en contacto con el fabricante del procesador o visite el sitio web del fabricante. La información y la solución incluidas este documento representan el punto de vista actual de Microsoft Corporation sobre estos problemas en la fecha en que se publicó el artículo. Esta solución está disponible a través de Microsoft o a través de un proveedor de otro fabricante. Microsoft no recomienda en concreto ningún proveedor ni ninguna solución de otros fabricantes mencionados en este artículo. Puede haber otros proveedores u otras soluciones de terceros que no se describen en este artículo. Microsoft debe hacer frente a las condiciones del mercado en continuo cambio, pero esta información no debe interpretarse como un compromiso por parte de Microsoft. Microsoft no puede garantizar ni respaldar la exactitud de la información o de las soluciones ofrecidas por Microsoft ni por ninguno de los proveedores mencionados.

Microsoft no otorga ninguna garantía y excluye cualquier representación, garantía y condición, ya sea expresa, implícita o legal. Incluyen, entre otras, las afirmaciones, garantías o condiciones de título, no infracción, condición satisfactoria, comerciabilidad y aptitud para un determinado fin con respecto a cualquier servicio, solución, producto u otro material o información. En ningún caso será Microsoft responsable de las soluciones de otros fabricantes mencionadas en este artículo.

Referencias

Para obtener más información sobre el procesador AMD64, visite el siguiente sitio web de Advanced Micro Devices: sitio web de AMD
Microsoft proporciona información de contacto de otros proveedores para ayudarle a encontrar soporte técnico. Dicha información de contacto puede cambiar sin notificación previa. Microsoft no garantiza la precisión de esta información de contacto de terceros.

Para obtener más información sobre el desarrollo de programas para las versiones basadas en Itanium de Windows Server 2003 y Windows XP, visite el siguiente sitio web de Microsoft: Introducción al desarrollo de aplicaciones para la versión basada en Itanium de 64 bits de Windows.

Los productos de otros fabricantes que se mencionan en este artículo han sido creados por compañías independientes de Microsoft. Microsoft no ofrece ninguna garantía, implícita o de otro tipo, respecto al rendimiento o la confiabilidad de estos productos.