Carpeta organizativa en Windows de 64 bits explicada.
Con el lanzamiento de Windows 7 de 64 bits, se introdujo un pequeño cambio en la asignación normal de carpetas en el directorio de Windows. Se incluyen dos nuevas carpetas en la edición de 64 bits de Windows 7, Windows 8 y Windows 10. Se incluyen Sysnative y SysWOW64 carpetas Esto es sólo en Windows de 64 bits. Si ejecuta un Windows de 32 bits en una máquina de 64 bits, no los verá. Tampoco los verá cuando ejecute Windows de 32 bits en una máquina de 32 bits.
Hay otra carpeta fuera del directorio de Windows, y se llama Archivos de programa (x86). Estamos acostumbrados al nombre de la carpeta Archivos de programa que alberga los ejecutables de nuestros programas. En los sistemas de 64 bits, los programas de 64 bits se almacenan en la carpeta Archivos de programa, mientras que los programas de 32 bits se almacenan en Archivos de programa (x86). Sin embargo, Windows usa algo parecido a una emulación para ejecutar programas de 32 bits en una máquina de 64 bits. Y, por lo tanto, es necesario saber y comprender cuáles son las carpetas del sistema en Windows (64 bits) para que sepa cómo alcanzar el archivo que desea..
A diferencia de las máquinas de 32 bits, donde las DLL de 32 bits se almacenan en el Carpeta System32, La versión de 64 bits de Windows almacena archivos DLL relacionados con 64 bits en la carpeta System32. Esto es para facilitar los propósitos de programación y para proporcionar compatibilidad con versiones anteriores. Es decir, si un programa de 64 bits se refiere a System32 en su código, obtendrá la DLL de 64 bits automáticamente cuando se le llame. Esto ayuda a los desarrolladores, ya que no tienen que cambiar el código en sus programas para Windows de 64 bits.
En resumen, Windows movió todas las DLL de 32 bits de la carpeta System32 en el directorio de Windows a alguna otra carpeta para que los programas anteriores no tengan que volver a codificarse para obtener las DLL adecuadas incluso cuando se usan API, después de actualizar a 64 bits. El problema se produce cuando una aplicación de 32 bits intenta acceder a la carpeta System32. En este caso, el programa se bloqueará ya que no está escrito para manejar DLL de 64 bits.
Carpeta SysWOW64 en Windows de 64 bits
Todas las DLL de 32 bits se han movido a la nueva Carpeta SysWOW64 en la versión de 64 bits de Windows 7, Windows 8 y Windows 10, por lo que cuando los programas de 32 bits invocan DLL de 32 bits, deben llegar a la carpeta SysWOW64.
Puede sentir que los desarrolladores tendrán que escanear sus programas y aplicaciones para apuntar las funciones DLL a la carpeta SysWOW64. Pero Microsoft ya se ha ocupado de ello. Si es un programa de 32 bits que está llamando C: \ Windows \ System32, un emulador redireccionará el camino a C: \ Windows \ SysWOW64. Es decir, para ejecutar programas de 32 bits en Windows de 64 bits, se utiliza un emulador, de modo que exista una compatibilidad con versiones anteriores adecuadas y para evitar errores al llamar archivos DLL.Carpeta organizativa en Windows de 64 bits
Puede haber casos en que un programa o aplicación de 32 bits necesite una DLL de 64 bits. En ese caso, deberás utilizar la carpeta de redireccionamiento. Sysnative. Puede considerar que SysNative es una carpeta virtual y un alias que apunta a la carpeta System32. No existe físicamente en su sistema, como tal. Entonces, si su programa de 32 bits necesita acceder a una DLL de 64 bits, no use C: \ Windows \ System32 porque el emulador de programa de 32 bits lo llevará a la carpeta DLL de 32 bits llamada SysWOW64. En su lugar, utilice C: \ Windows \ SysNative como la ruta al programa DLL. El uso de Sysnative en la ruta lo redireccionará a la carpeta System32 en lugar de a la carpeta SysWOW64.
Si abre File Windows Explorer, no encontrará la carpeta Sysnative en C: \ Windows. Incluso si configura Opciones de carpeta para mostrar carpetas ocultas y del sistema. Esto se debe a que el Explorador de archivos de Windows es un programa de 64 bits cuando se ejecuta en Windows de 64 bits, y la carpeta Sysnative es visible y accesible solo desde programas de 32 bits..
Para resumir:
- Las carpetas System32 contienen archivos DLL de 64 bits.
- SysWOW64 contiene archivos DLL de 32 bits y los programas de 32 bits se redirigen automáticamente a esta carpeta
- Sysnative es una carpeta de redireccionamiento que permite a los programas de 32 bits llamar a DLL de 64 bits..
Lectura adicional: MSDN.
¿Quieres saber la diferencia entre las carpetas System32 y SysWOW64??