본문 바로가기
IT/C++

32bit application 에서 64bit registry 읽기

by Spring Up!! 2016. 9. 7.
반응형
레지스트리에서 MachineGuid 값을 읽어오는 루틴을 만들고 있었는데, 값이 읽혀지지 안았다

왜 안읽히는지 에러코드를 찍고, 검색해보다 보니.. MSDN 에 다음과 같이 나온다

A 32-bit application running on WOW64 accesses the 32-bit registry view and a 64-bit application accesses the 64-bit registry view.

해결책은
RegOpenKeyEx 명령어에서 samDesired 인수에 KEY_WOW64_64KEY 를 더하여 주면, WOW64 에서도 32bit application 이 64bit registry key 를 읽을 수 있게 된다

Wow64 인지 확인하는 방법은

BOOL bIsWow64 = FALSE;
IsWow64Process(GetCurrentProcess(), &bIsWow64);

로 확인할 수 있다
반응형

댓글