[PATCH 2/3] ntdll: Stub Wow64Transition.
Zebediah Figura
z.figura12 at gmail.com
Tue Oct 27 23:39:30 CDT 2020
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45567
Signed-off-by: Zebediah Figura <z.figura12 at 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
More information about the wine-devel
mailing list