[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