From 971480aaccc3d96bd471f50b23479c6acdf7fe2f Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Wed, 1 Dec 2021 11:25:00 +0100 Subject: [PATCH] wow64: Implement Wow64PrepareForException(). Signed-off-by: Alexandre Julliard --- dlls/wow64/syscall.c | 13 +++++++++++++ dlls/wow64/wow64.spec | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/dlls/wow64/syscall.c b/dlls/wow64/syscall.c index 952b862a37d..74fc8d9905e 100644 --- a/dlls/wow64/syscall.c +++ b/dlls/wow64/syscall.c @@ -79,6 +79,7 @@ static const SYSTEM_SERVICE_TABLE *psdwhwin32; static void * (WINAPI *pBTCpuGetBopCode)(void); static void (WINAPI *pBTCpuProcessInit)(void); static void (WINAPI *pBTCpuSimulate)(void); +static NTSTATUS (WINAPI *pBTCpuResetToConsistentState)( EXCEPTION_POINTERS * ); void *dummy = RtlUnwind; @@ -534,6 +535,7 @@ static DWORD WINAPI process_init( RTL_RUN_ONCE *once, void *param, void **contex module = load_64bit_module( get_cpu_dll_name() ); GET_PTR( BTCpuGetBopCode ); GET_PTR( BTCpuProcessInit ); + GET_PTR( BTCpuResetToConsistentState ); GET_PTR( BTCpuSimulate ); module = load_64bit_module( L"wow64win.dll" ); @@ -769,3 +771,14 @@ void WINAPI Wow64LdrpInitialize( CONTEXT *context ) thread_init(); pBTCpuSimulate(); } + + +/********************************************************************** + * Wow64PrepareForException (wow64.@) + */ +void WINAPI Wow64PrepareForException( EXCEPTION_RECORD *rec, CONTEXT *context ) +{ + EXCEPTION_POINTERS ptrs = { rec, context }; + + pBTCpuResetToConsistentState( &ptrs ); +} diff --git a/dlls/wow64/wow64.spec b/dlls/wow64/wow64.spec index 69275b2580f..5c3f39c50f1 100644 --- a/dlls/wow64/wow64.spec +++ b/dlls/wow64/wow64.spec @@ -15,7 +15,7 @@ @ stub Wow64NotifyUnsimulateComplete @ stdcall Wow64PassExceptionToGuest(ptr) @ stub Wow64PrepareForDebuggerAttach -@ stub Wow64PrepareForException +@ stdcall Wow64PrepareForException(ptr ptr) @ stub Wow64RaiseException @ stub Wow64ShallowThunkAllocObjectAttributes32TO64_FNC @ stub Wow64ShallowThunkAllocSecurityQualityOfService32TO64_FNC