Partilhar via


Redirecionador do sistema de arquivos

O diretório %windir%\System32 está reservado para aplicativos de 64 bits no Windows de 64 bits. A maioria dos nomes de arquivo DLL não foram alterados quando versões de 64 bits das DLLs foram criadas, portanto, versões de 32 bits das DLLs são armazenadas em um diretório diferente. O WOW64 oculta essa diferença usando um redirecionador de sistema de arquivos .

Na maioria dos casos, sempre que um aplicativo de 32 bits tenta acessar %windir%\System32, %windir%\lastgood\system32, or %windir%\regedit.exe, o acesso é redirecionado para um caminho específico da arquitetura.

Observação

Esses caminhos são fornecidos apenas para referência. Para fins de compatibilidade, os aplicativos não devem usar esses caminhos diretamente. Em vez disso, eles devem chamar as APIs descritas abaixo.

 

Caminho original Caminho redirecionado para processos x86 de 32 bits Caminho redirecionado para processos 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

 

Se o acesso fizer com que o sistema exiba o prompt do UAC, o redirecionamento não ocorrerá. Em vez disso, a versão de 64 bits do arquivo solicitado é iniciada. Para evitar esse problema, especifique o diretório SysWOW64 para evitar o redirecionamento e garantir o acesso à versão de 32 bits do arquivo ou execute o aplicativo de 32 bits com privilégios de administrador para que o prompt do UAC não seja exibido.

Windows Server 2003 e Windows XP: UAC não é suportado.

Alguns subdiretórios estão isentos de redirecionamento. O acesso a esses subdiretórios não é redirecionado para %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 e Windows XP: %windir%\system32\driverstore é redirecionado.

Para recuperar o nome do diretório do sistema de 32 bits, os aplicativos de 64 bits devem usar a funçãoGetSystemWow64Directory2 do(Windows 10, versão 1511) ou a funçãoGetSystemWow64Directory.

Os aplicativos devem usar a função SHGetKnownFolderPath para determinar o nome do diretório %ProgramFiles%.

Windows Server 2003 e Windows XP: aplicativos devem usar a funçãoSHGetSpecialFolderPath dopara determinar o nome do diretório %ProgramFiles%.

Os aplicativos podem controlar o redirecionador do sistema de arquivos WOW64 usando o Wow64DisableWow64FsRedirection, Wow64EnableWow64FsRedirectione funções de Wow64RevertWow64FsRedirection. A desativação do redirecionamento do sistema de arquivos afeta todas as operações de arquivo executadas pelo thread de chamada, portanto, ele deve ser desabilitado somente quando necessário para uma única chamada deCreateFilee reativado novamente imediatamente após o retorno da função. Desabilitar o redirecionamento do sistema de arquivos por períodos mais longos pode impedir que aplicativos de 32 bits carreguem DLLs do sistema, fazendo com que os aplicativos falhem.

Os aplicativos de 32 bits podem acessar o diretório nativo do sistema substituindo %windir%\Sysnative por %windir%\System32. WOW64 reconhece Sysnative como um alias especial usado para indicar que o sistema de arquivos não deve redirecionar o acesso. Este mecanismo é flexível e fácil de usar, portanto, é o mecanismo recomendado para ignorar o redirecionamento do sistema de arquivos. Observe que os aplicativos de 64 bits não podem usar o alias Sysnative, pois é um diretório virtual e não real.

Windows Server 2003 e Windows XP: O alias Sysnative foi adicionado a partir do Windows Vista.