wow64: Make the syscall dispatcher point to the wow64cpu syscall wrapper.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alexandre Julliard 2021-08-04 12:06:27 +02:00
parent e30f091f3b
commit 9f24bc44bc
1 changed files with 17 additions and 1 deletions

View File

@ -62,8 +62,16 @@ struct mem_header
BYTE data[1];
};
static void **pWow64Transition;
static void **p__wine_syscall_dispatcher;
static SYSTEM_DLL_INIT_BLOCK *pLdrSystemDllInitBlock;
/* cpu backend dll functions */
static void * (WINAPI *pBTCpuGetBopCode)(void);
static void (WINAPI *pBTCpuProcessInit)(void);
static void (WINAPI *pBTCpuSimulate)(void);
void *dummy = RtlUnwind;
BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, void *reserved )
@ -400,9 +408,17 @@ static void process_init(void)
GET_PTR( LdrSystemDllInitBlock );
module = (HMODULE)(ULONG_PTR)pLdrSystemDllInitBlock->ntdll_handle;
GET_PTR( Wow64Transition );
GET_PTR( __wine_syscall_dispatcher );
init_syscall_table( module );
load_cpu_dll();
module = load_cpu_dll();
GET_PTR( BTCpuGetBopCode );
GET_PTR( BTCpuProcessInit );
GET_PTR( BTCpuSimulate );
pBTCpuProcessInit();
*pWow64Transition = *p__wine_syscall_dispatcher = pBTCpuGetBopCode();
init_file_redirects();