Compartilhar via


Função Wow64EnableWow64FsRedirection (wow64apiset.h)

Habilita ou desabilita o redirecionamento do sistema de arquivos para o thread de chamada.

Essa função pode não funcionar de forma confiável quando há chamadas aninhadas. Portanto, essa função foi substituída pelas funções Wow64DisableWow64FsRedirection e Wow64RevertWow64FsRedirection .

Nota Esses dois métodos de controle do redirecionamento do sistema de arquivos não podem ser combinados de forma alguma. Não use a função Wow64EnableWow64FsRedirection com a função Wow64DisableWow64FsRedirection ou Wow64RevertWow64FsRedirection .
 

Sintaxe

BOOLEAN Wow64EnableWow64FsRedirection(
  BOOLEAN Wow64FsEnableRedirection
);

Parâmetros

Wow64FsEnableRedirection

Indica o tipo de solicitação para redirecionamento de pasta do sistema WOW64. Se TRUE, o redirecionamento de solicitações será habilitado; se FALSE, o redirecionamento de solicitações será desabilitado.

Retornar valor

Valor booliano que indica se a função foi bem-sucedida. Se TRUE, a função foi bem-sucedida; se FALSE, a função falhou.

Comentários

Essa função é útil para aplicativos de 32 bits que desejam obter acesso ao diretório nativo system32. Por padrão, o redirecionamento do sistema de arquivos WOW64 está habilitado.

Nota A função Wow64EnableWow64FsRedirection afeta todas as operações de arquivo executadas pelo thread atual, o que pode ter consequências não intencionais se o redirecionamento do sistema de arquivos estiver desabilitado por qualquer período de tempo. Por exemplo, o carregamento de DLL depende do redirecionamento do sistema de arquivos, portanto, desabilitar o redirecionamento do sistema de arquivos fará com que o carregamento de DLL falhe. Além disso, muitas implementações de recursos usam o carregamento atrasado e falharão enquanto o redirecionamento estiver desabilitado. O estado de falha da operação inicial de carregamento de atraso é persistente, portanto, qualquer uso subsequente da função de carregamento de atraso falhará mesmo depois que o redirecionamento do sistema de arquivos for habilitado novamente. Para evitar esses problemas, desabilite o redirecionamento do sistema de arquivos imediatamente antes das chamadas para funções de E/S de arquivo específicas (como CreateFile) que não devem ser redirecionadas e habilite novamente o redirecionamento do sistema de arquivos imediatamente depois usando Wow64EnableWow64FsRedirection(TRUE).
 
O redirecionamento de arquivo está habilitado ou desabilitado somente para o thread que chama essa função. Isso afeta apenas as operações feitas pelo thread atual. Algumas funções, como CreateProcessAsUser, fazem seu trabalho em outro thread, que não é afetado pelo estado do redirecionamento do sistema de arquivos no thread de chamada.

No Windows 8 e Windows Server 2012, essa função é compatível com as tecnologias a seguir.

Tecnologia Com suporte
Protocolo SMB (SMB) 3.0 No
TFO (Failover transparente) do SMB 3.0 No
SMB 3.0 com compartilhamentos de arquivos de expansão (SO) No
Sistema de arquivos de Volume Compartilhado Clusterizado (CsvFS) Sim
ReFS (Sistema de Arquivos Resiliente) Não

Exemplos

#ifdef _WIN32_WINNT
#undef _WIN32_WINNT
#endif
#define _WIN32_WINNT 0x0501

#ifdef NTDDI_VERSION
#undef NTDDI_VERSION
#endif
#define NTDDI_VERSION 0x05010000

#include <Windows.h>

void main()
 {
  HANDLE hFile = INVALID_HANDLE_VALUE;

  //  Disable redirection immediately prior to the native API
  //  function call.
  if( Wow64EnableWow64FsRedirection(FALSE) ) 
   {
    //  Any function calls in this block of code should be as concise
    //  and as simple as possible to avoid unintended results.
    hFile = CreateFile(TEXT("C:\\Windows\\System32\\Notepad.exe"),
                       GENERIC_READ,
                       FILE_SHARE_READ,
                       NULL,
                       OPEN_EXISTING,
                       FILE_ATTRIBUTE_NORMAL,
                       NULL);

    //  Immediately re-enable redirection. Note that any resources
    //  associated with OldValue are cleaned up by this call.
    if ( FALSE == Wow64EnableWow64FsRedirection(TRUE) )
     {
      //  Failure to re-enable redirection should be considered
      //  a critical failure and execution aborted.
      return;
     }
   }
    
  // The handle, if valid, can be used as usual without
  // leaving redirection disabled.
 
  if( INVALID_HANDLE_VALUE != hFile )  
   {
    // Use the file handle
   }
 }

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wow64apiset.h (inclua Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

Funções de gerenciamento de arquivos

Redirecionador do Sistema de Arquivos

GetSystemWow64Directory

Wow64DisableWow64FsRedirection

Wow64RevertWow64FsRedirection