푸른나무그늘

마음이 쉬는 곳...

포토로그


QR CODE

이글루스 구글 검색엔진


Twitter


64bit 환경에서 system32 -> syswow64 Redirection diable 하기 //프로그래밍//

32비트 환경에서 만든 프로그램을 64비트 환경에서 실행시킬 때

32비트 프로그램이 system32 폴더로 파일을 복사하게 되면 Windows는 자동으로

syswow64로 redirect 하여 파일을 복사하게 된다.

이를 피하기 위하여 아래와 같은 코드로 redirection을 disable 할 수 있다.

==================================================================

PVOID OldValue;

Wow64DisableWow64FsRedirection(&OldValue);

CopyFile(szSourcePath, szTargetPath, false);

Wow64RevertWow64FsRedirection(OldValue);

==================================================================

system32와 syswow64 폴더에 대한 자세한 내용은 아래 '참조1'을 참조할 것

참조2 : http://www.codeproject.com/tips/55290/Disabling-Windows-file-system-redirection-on-a-CFi.aspx



덧붙여 InstallShield 개발 시에는

OnSetTARGETDIR 부분에 Disable(WOW64FSREDIRECTION); 을 추가하면 된다.




ps. 오랜만에 프로그래밍 카테고리에 글을 올렸더니...... 민망하다 크으... -_-;;;

덧글

  • 2013/06/17 22:57 # 삭제 답글 비공개

    비공개 덧글입니다.
  • 푸른나무 2013/06/18 09:08 #

    위 코드는 64비트 환경에서 파일을 system32 폴더에 복사할 때 쓰는 코드입니다. system32 폴더에 파일을 복사할 일이 있을 때 쓰시면 됩니다.

    만약에 그냥 CopyFile을 하게 되면 system32에 복사해도 자동으로 syswow64 폴더로 복사되어 버립니다. 그것을 방지하기 위해 CopyFile 전에 syswow64 폴더로 복사되는 것을 Disable하고 CopyFile 한 뒤에 다시 Enable 해주는 코드인 것입니다.
  • 11 2015/11/03 21:37 # 삭제 답글

    안녕하세요. 이걸 어디다가 복사해서 붙여넣기 해야하나요??
댓글 입력 영역



YES24