운영체제/WINDOWS

32 bit / 64 bit System 폴더

우끼우끼몽키 2017. 4. 27. 23:25

32 bit Windows 시스템 폴더 

  • System32     (C:\Windows\System32)

64 bit Windows 시스템 폴더 
  • SysWOW64   (C:\Windows\SysWOW64)
  • System32      (C:\Windows\System32)


64bit 운영체제에서는 System 32 폴더가 64bit 프로세스를 위한 시스템 폴더이며,

SysWOW64 폴더는 용어상으로 혼동하기 쉬운데, Windows 32bit On Windows 64 bit 의 약자로써, 32bit 프로세스를 지원하기 위한 시스템 폴더이다.

 ※ 32bit 프로세스는 SysWOW64 시스템 폴더의 내용을 참조하여 실행되며, 64bit 프로세스는 System 32 시스템 폴더의 내용을 참조하여 실행된다.


그렇다면 64bit 운영체제에서 32bit 프로세스는 무조건 SysWOW64 시스템 폴더로 접근 하여야 하는것인가 ?

Windows는 File System Redirector라는 기능을 지원하여, Sytem32 폴더에 접근하여 사용하려 하여도 SysWOW64 폴더로 리다이렉트 시켜 자동으로 SysWOW64 폴더의 내용을 참조한다. https://msdn.microsoft.com/ko-kr/library/windows/desktop/aa384187(v=vs.85).aspx

예를들어 64bit os에서 32bit 프로세스가  LoadLibrary(C:\windows\System32\Kernel32.dll) 을 호출하여 Kernel32.dll을 로딩하려 하여도 실제로는 리다이렉트되어 C:\windows\SysWOW64\Kernel32.dll 경로의 Kernel32.dll을 참조한다.


32bit 프로세스가 System32 폴더에 접근하고 싶다면 Wow64EnableWow64FsRedirection API를 사용해 리다이렉트 기능을 끄고 강제로 접근하면된다.

https://msdn.microsoft.com/ko-kr/library/windows/desktop/aa365744(v=vs.85).aspx