Redirector del sistema de archivos
El directorio %windir%\System32 está reservado para aplicaciones de 64 bits en Windows de 64 bits. La mayoría de los nombres de archivo DLL no se cambiaron cuando se crearon versiones de 64 bits de los archivos DLL, por lo que las versiones de 32 bits de los archivos DLL se almacenan en un directorio diferente. WOW64 oculta esta diferencia mediante un redirector del sistema de archivos.
En la mayoría de los casos, cada vez que una aplicación de 32 bits intenta acceder a %windir%\System32, %windir%\lastgood\system32 o %windir%\regedit.exe, el acceso se redirige a una ruta específica de la arquitectura.
Nota
Estas rutas de acceso solo se proporcionan como referencia. Por motivos de compatibilidad, las aplicaciones no deben usar estas rutas de acceso directamente. En su lugar, deben llamar a las API que se describen a continuación.
Ruta de acceso original | Ruta de acceso redirigida para procesos x86 de 32 bits | Ruta de acceso redirigida para procesos arm de 32 bits |
---|---|---|
%windir%\System32 | %windir%\SysWOW64 | %windir%\SysArm32 |
%windir%\lastgood\system32 | %windir%\lastgood\SysWOW64 | %windir%\lastgood\SysArm32 |
%windir%\regedit.exe | %windir%\SysWOW64\regedit.exe | %windir%\ SysArm32\regedit.exe |
Si el acceso hace que el sistema muestre el símbolo del sistema, no se produce el redireccionamiento. En su lugar, se inicia la versión de 64 bits del archivo solicitado. Para evitar este problema, especifique el directorio SysWOW64 para evitar el redireccionamiento y garantizar el acceso a la versión de 32 bits del archivo o ejecute la aplicación de 32 bits con privilegios de administrador para que no se muestre el símbolo del sistema de UAC.
Windows Server 2003 y Windows XP: UAC no se admite.
Algunos subdirectorios están exentos del redireccionamiento. No se redirige el acceso a estos subdirectorios a %windir%\SysWOW64:
- %windir%\system32\catroot
%windir%\system32\catroot2
%windir%\system32\driverstore
%windir%\system32\drivers\etc
%windir%\system32\logfiles
%windir%\system32\spool
Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: %windir%\system32\driverstore se redirige.
Para recuperar el nombre del directorio del sistema de 32 bits, las aplicaciones de 64 bits deben usar la función GetSystemWow64Directory2 (Windows 10, versión 1511) o la función GetSystemWow64Directory.
Las aplicaciones deben usar la función SHGetKnownFolderPath para determinar el nombre del directorio %ProgramFiles%.
Windows Server 2003 y Windows XP: Las aplicaciones deben usar la función SHGetSpecialFolderPath para determinar el nombre del directorio %ProgramFiles%.
Las aplicaciones pueden controlar el redirector del sistema de archivos WOW64 mediante las funciones Wow64DisableWow64FsRedirection, Wow64EnableWow64FsRedirection y Wow64RevertWow64FsRedirection . La deshabilitación del redireccionamiento del sistema de archivos afecta a todas las operaciones de archivo realizadas por el subproceso que realiza la llamada, por lo que solo debe deshabilitarse cuando sea necesario para una sola llamada a CreateFile y volver a habilitarla inmediatamente después de que la función devuelva. Deshabilitar el redireccionamiento del sistema de archivos durante períodos más largos puede impedir que las aplicaciones de 32 bits carguen archivos DLL del sistema, lo que hace que se produzca un error en las aplicaciones.
Las aplicaciones de 32 bits pueden acceder al directorio del sistema nativo sustituyendo %windir%\Sysnative por %windir%\System32. WOW64 reconoce Sysnative como alias especial usado para indicar que el sistema de archivos no debe redirigir el acceso. Este mecanismo es flexible y fácil de usar, por lo tanto, es el mecanismo recomendado para omitir el redireccionamiento del sistema de archivos. Tenga en cuenta que las aplicaciones de 64 bits no pueden usar el alias Sysnative, ya que es un directorio virtual no un real.
Windows Server 2003 y Windows XP: El alias Sysnative se agregó a partir de Windows Vista.