static BOOL MyIsWow64Process(HANDLE hProcess, PBOOL Wow64Process) { typedef BOOL (WINAPI* IsWow64Process_FuncType)(HANDLE hProcess, PBOOL Wow64Process); IsWow64Process_FuncType isWow64Process = reinterpret_cast<IsWow64Process_FuncType>(::GetProcAddress(::GetModuleHandle(L"kernel32.dll"), "IsWow64Process")); if(isWow64Process == NULL) { *Wow64Process = FALSE; return TRUE; } BOOL ret = isWow64Process(hProcess, Wow64Process); return ret; }
bool Process::_isWow64(HANDLE process) { typedef BOOL (WINAPI *ISWOW64PROCESS)(HANDLE, PBOOL); BOOL isWow64 = FALSE; HMODULE kernel32 = CWA(kernel32, GetModuleHandleW)(L"kernel32.dll"); if(kernel32 != NULL) { ISWOW64PROCESS isWow64Process = (ISWOW64PROCESS)CWA(kernel32, GetProcAddress)(kernel32, "IsWow64Process"); if(isWow64Process != NULL) { if(isWow64Process(process, &isWow64) == FALSE)return false; } } return isWow64 ? true : false; }