Wow64DisableWow64FsRedirection 함수(wow64apiset.h)
호출 스레드에 파일 시스템 리디렉션을 사용하지 않도록 설정합니다. 파일 시스템 리디렉션은 기본적으로 사용하도록 설정됩니다.
구문
BOOL Wow64DisableWow64FsRedirection(
[out] PVOID *OldValue
);
매개 변수
[out] OldValue
WOW64 파일 시스템 리디렉션 값입니다. 시스템은 이 매개 변수를 사용하여 파일 시스템 리디렉션을 되돌리기(다시 사용)하는 데 필요한 정보를 저장합니다.
반환 값
함수가 성공하면 반환 값은 0이 아닌 값입니다.
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
설명
이 함수는 네이티브 system32 디렉터리에 액세스하려는 32비트 애플리케이션에 유용합니다. 기본적으로 WOW64 파일 시스템 리디렉션이 사용하도록 설정됩니다.
Wow64DisableWow64FsRedirection/Wow64RevertWow64FsRedirection 함수 페어링은 Wow64EnableWow64FsRedirection 함수의 기능을 대체합니다.
파일 시스템 리디렉션을 복원하려면 Wow64RevertWow64FsRedirection 함수를 호출합니다. Wow64DisableWow64FsRedirection 함수에 대한 모든 성공적인 호출에는 Wow64RevertWow64FsRedirection 함수에 대한 일치 호출이 있어야 합니다. 이렇게 하면 리디렉션이 다시 활성화되고 연결된 시스템 리소스가 해제됩니다.
Windows 8 및 Windows Server 2012에서 이 함수는 다음 기술을 통해 지원됩니다.
기술 | 지원됨 |
---|---|
SMB(서버 메시지 블록) 3.0 프로토콜 | No |
SMB 3.0 TFO(투명 장애 조치(failover)) | No |
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 | No |
CsvFS(클러스터 공유 볼륨 파일 시스템) | Yes |
ReFS(Resilient File System) | 예 |
예제
다음 예제에서는 Wow64DisableWow64FsRedirection 을 사용하여 WOW64에서 실행되는 32비트 애플리케이션이 %SystemRoot%\SysWOW64의 32비트 버전으로 리디렉션되는 대신 %SystemRoot%\System32에서 64비트 버전의 Notepad.exe 열 수 있도록 파일 시스템 리디렉션을 사용하지 않도록 설정합니다.
#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
}
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista, Windows XP Professional x64 Edition [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008, Windows Server 2003 SP1 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | wow64apiset.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |