Redirector del sistema de archivos
El directorio \System32 de %windir%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, or %windir%\regedit.exe, el acceso se redirige a una ruta de acceso 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 mensaje de UAC.
Windows Server 2003 y Windows XP: no se admite UAC.
Algunos subdirectorios están exentos del redireccionamiento. El acceso a estos subdirectorios no se redirige 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: se redirige %windir%\system32\driverstore.
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ónSHGetKnownFolderPath para determinar el nombre del directorio %ProgramFiles%.
Windows Server 2003 y Windows XP: Applications debe usar la función SHGetSpecialFolderPath para determinar el nombre del directorio %ProgramFiles%.
Las aplicaciones pueden controlar el redirector del sistema de archivos WOW64 mediante el Wow64DisableWow64FsRedirection, Wow64EnableWow64FsRedirection, y funciones wow64RevertWow64FsRedirection. Deshabilitar el 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 createFile llamada y volver a habilitarla inmediatamente después de que se devuelva la función. 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 provoca un error en las aplicaciones.
Las aplicaciones de 32 bits pueden acceder al directorio del sistema nativo sustituyendo %windir%\Sysnative para %windir%\System32. WOW64 reconoce Sysnative como alias especial que se usa 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 la redirección 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 que no es real.
Windows Server 2003 y Windows XP: Se agregó el alias sysnative a partir de Windows Vista.