Wow64EnableWow64FsRedirection 함수(wow64apiset.h)

호출 스레드에 파일 시스템 리디렉션을 사용하도록 설정합니다.

중첩된 호출이 있는 경우 이 함수가 안정적으로 작동하지 않을 수 있습니다. 따라서 이 함수는 Wow64DisableWow64FsRedirectionWow64RevertWow64FsRedirection 함수로 대체되었습니다 .

참고 이러한 두 가지 파일 시스템 리디렉션 제어 방법은 어떤 방식으로도 결합할 수 없습니다. Wow64DisableWow64FsRedirection 함수 또는 Wow64RevertWow64FsRedirection 함수와 함께 Wow64EnableWow64FsRedirection 함수를 사용하지 마세요.
 

구문

BOOLEAN Wow64EnableWow64FsRedirection(
  BOOLEAN Wow64FsEnableRedirection
);

매개 변수

Wow64FsEnableRedirection

WOW64 시스템 폴더 리디렉션에 대한 요청 유형을 나타냅니다. TRUE이면 리디렉션을 사용하도록 설정합니다. FALSE이면 요청 리디렉션을 사용하지 않도록 설정합니다.

반환 값

함수가 성공했는지 여부를 나타내는 부울 값입니다. TRUE이면 함수가 성공했습니다. FALSE이면 함수가 실패했습니다.

설명

이 함수는 네이티브 system32 디렉터리에 액세스하려는 32비트 애플리케이션에 유용합니다. 기본적으로 WOW64 파일 시스템 리디렉션이 사용하도록 설정됩니다.

참고Wow64EnableWow64FsRedirection 함수는 현재 스레드에서 수행하는 모든 파일 작업에 영향을 줍니다. 이는 파일 시스템 리디렉션이 일정 기간 동안 사용하지 않도록 설정된 경우 의도하지 않은 결과를 초래할 수 있습니다. 예를 들어 DLL 로드는 파일 시스템 리디렉션에 따라 달라지므로 파일 시스템 리디렉션을 사용하지 않도록 설정하면 DLL 로드가 실패합니다. 또한 많은 기능 구현은 지연된 로드를 사용하며 리디렉션이 사용하지 않도록 설정된 동안 실패합니다. 초기 지연 로드 작업의 실패 상태가 유지되므로 파일 시스템 리디렉션을 다시 사용하도록 설정한 후에도 지연 로드 함수의 후속 사용이 실패합니다. 이러한 문제를 방지하려면 리디렉션해서는 안 되는 특정 파일 I/O 함수(예: CreateFile)에 대한 호출 직전에 파일 시스템 리디렉션을 사용하지 않도록 설정하고, 즉시 를 사용하여 Wow64EnableWow64FsRedirection(TRUE)파일 시스템 리디렉션을 다시 사용하도록 설정합니다.
 
파일 리디렉션은 이 함수를 호출하는 스레드에 대해서만 사용하거나 사용하지 않도록 설정됩니다. 이는 현재 스레드에서 수행한 작업에만 영향을 줍니다. CreateProcessAsUser와 같은 일부 함수는 호출 스레드의 파일 시스템 리디렉션 상태에 영향을 받지 않는 다른 스레드에서 작업을 수행합니다.

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)

예제

#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
   }
 }

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 wow64apiset.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

파일 관리 함수

파일 시스템 리디렉션기

GetSystemWow64Directory

Wow64DisableWow64FsRedirection

Wow64RevertWow64FsRedirection