Consultor Eletrônico



Kbase P155150: OS redirects 32-bit applications requests from \%WINDIR%\System32 to %WINDIR%\Syswow64
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   9/10/2010
Status: Unverified

SYMPTOM(s):

OS redirects 32-bit applications requests from \%WINDIR%\System32 to %WINDIR%\Syswow64

OS-COMMAND behaves differently than %WINDIR%\cmd.exe when running command inside %WINDIR%\System32 folder

\%WINDIR%\System32is transparently aliased to %WINDIR%\Syswow64

FACT(s) (Environment):

32-bit application trying to read or write in %WINDIR%\System32 folder
x86_64 (AMD64/EMT64)
Windows XP
Windows Vista
Windows Server 2003
Windows Server 2008

CAUSE:

This is an expected behavior

FIX:

OS-COMMAND will run the 32-bit version of the shell while starting cmd from the run tool, the 64-bit version of the shell is spawned.

The %windir%\System32 directory is reserved for 64-bit applications. Most DLL file names were not changed when porting to 64-bit, so 32-bit applications must use a different directory as their System32 directory. WOW64 hides this difference using a file system redirector. Whenever a 32-bit application attempts to access %windir%\System32, the access is redirected to a new directory, %windir%\SysWOW64. Access to %windir%\lastgood\system32 is redirected to %windir%\lastgood\SysWOW64. Access to %windir%\regedit.exe is redirected to %windir%\SysWOW64\regedit.exe.
32-bit applications can access the native system directory by substituting %windir%\Sysnative for %windir%\System32. WOW64 recognizes Sysnative as a special alias used to indicate that the file system should not redirect the access. The Sysnative is just a virtual directory, alias or pseudo-directory that is not visible in Windows Explorer, directory listing, and does not support native 64-bit processes that already been accessing the %windir%\System32 folder. As such, Sysnative can only be used in file system calls, and not in applications user interface such as dialog box to open or select folder.