Alexandre Julliard : wow64: Implement Wow64PrepareForException().

Alexandre Julliard julliard at winehq.org
Wed Dec 1 15:23:48 CST 2021


Module: wine
Branch: master
Commit: 971480aaccc3d96bd471f50b23479c6acdf7fe2f
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=971480aaccc3d96bd471f50b23479c6acdf7fe2f

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Wed Dec  1 11:25:00 2021 +0100

wow64: Implement Wow64PrepareForException().

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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




More information about the wine-cvs mailing list