Função Wow64DisableWow64FsRedirection (wow64apiset.h)
Desabilita o redirecionamento do sistema de arquivos para o thread de chamada. O redirecionamento do sistema de arquivos está habilitado por padrão.
Sintaxe
BOOL Wow64DisableWow64FsRedirection(
[out] PVOID *OldValue
);
Parâmetros
[out] OldValue
O valor de redirecionamento do sistema de arquivos WOW64. O sistema usa esse parâmetro para armazenar as informações necessárias para reverter (reabilitar) o redirecionamento do sistema de arquivos.
Retornar valor
Se a função for bem-sucedida, o valor retornado será um valor diferente de zero.
Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.
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.
O emparelhamento de função Wow64DisableWow64FsRedirection/Wow64RevertWow64FsRedirection é uma substituição para a funcionalidade da função Wow64EnableWow64FsRedirection .
Para restaurar o redirecionamento do sistema de arquivos, chame a função Wow64RevertWow64FsRedirection . Cada chamada bem-sucedida para a função Wow64DisableWow64FsRedirection deve ter uma chamada correspondente para a função Wow64RevertWow64FsRedirection . Isso garantirá que o redirecionamento seja habilitado novamente e libere os recursos do sistema associados.
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
O exemplo a seguir usa Wow64DisableWow64FsRedirection para desabilitar o redirecionamento do sistema de arquivos para que um aplicativo de 32 bits em execução em WOW64 possa abrir a versão de 64 bits do Notepad.exe em %SystemRoot%\System32 em vez de ser redirecionado para a versão de 32 bits em %SystemRoot%\SysWOW64.
#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;
PVOID OldValue = NULL;
// Disable redirection immediately prior to the native API
// function call.
if( Wow64DisableWow64FsRedirection(&OldValue) )
{
// 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 == Wow64RevertWow64FsRedirection(OldValue) )
{
// Failure to re-enable redirection should be considered
// a critical failure and execution aborted.
return;
}
}
// The handle, if valid, now can be used as usual, and without
// leaving redirection disabled.
if( INVALID_HANDLE_VALUE != hFile )
{
// Use the file handle
}
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista, Windows XP Professional x64 Edition [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008, Windows Server 2003 com SP1 [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