Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45567 Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> --- dlls/ntdll/loader.c | 11 +++++++++++ dlls/ntdll/ntdll.spec | 1 + 2 files changed, 12 insertions(+) diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c index a7015deeec4..11f9575b46f 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -3975,6 +3975,9 @@ BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved ) return TRUE; } +#ifndef _WIN64 +void *Wow64Transition; +#endif /*********************************************************************** * restart_winevdm @@ -4061,6 +4064,14 @@ static NTSTATUS process_init(void) status = build_builtin_module( params->DllPath.Buffer, &nt_name, meminfo.AllocationBase, 0, &wm ); assert( !status ); +#ifndef _WIN64 + if ((status = load_dll( params->DllPath.Buffer, L"C:\\windows\\system32\\wow64cpu.dll", + NULL, 0, &wm )) == STATUS_SUCCESS) + Wow64Transition = wm->ldr.DllBase; + else + WARN( "could not load wow64cpu.dll, status %#x\n", status ); +#endif + if ((status = load_dll( params->DllPath.Buffer, kernel32W, NULL, 0, &wm )) != STATUS_SUCCESS) { MESSAGE( "wine: could not load kernel32.dll, status %x\n", status ); diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index 36746d989c6..3f852639fe7 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -1131,6 +1131,7 @@ @ stdcall WinSqmIsOptedIn() @ stdcall WinSqmSetDWORD(ptr long long) @ stdcall WinSqmStartSession(ptr long long) +@ extern -arch=win32 Wow64Transition @ stdcall -private -syscall ZwAcceptConnectPort(ptr long ptr long ptr ptr) NtAcceptConnectPort @ stdcall -private -syscall ZwAccessCheck(ptr long long ptr ptr ptr ptr ptr) NtAccessCheck @ stdcall -private -syscall ZwAccessCheckAndAuditAlarm(ptr long ptr ptr ptr long ptr long ptr ptr ptr) NtAccessCheckAndAuditAlarm -- 2.28.0