Alexandre Julliard : ntdll: Add a stub for NtCallbackReturn().

Alexandre Julliard julliard at winehq.org
Tue Aug 17 16:26:51 CDT 2021


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Aug 17 11:52:35 2021 +0200

ntdll: Add a stub for NtCallbackReturn().

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

---

 dlls/ntdll/ntdll.spec           | 2 +-
 dlls/ntdll/tests/exception.c    | 9 +++++++++
 dlls/ntdll/unix/signal_arm.c    | 9 +++++++++
 dlls/ntdll/unix/signal_arm64.c  | 9 +++++++++
 dlls/ntdll/unix/signal_i386.c   | 9 +++++++++
 dlls/ntdll/unix/signal_x86_64.c | 9 +++++++++
 6 files changed, 46 insertions(+), 1 deletion(-)

diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 36d997d1762..46403b3f4a1 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -145,7 +145,7 @@
 @ stdcall -syscall NtAllocateVirtualMemoryEx(long ptr ptr long long ptr long)
 @ stdcall -syscall NtAreMappedFilesTheSame(ptr ptr)
 @ stdcall -syscall NtAssignProcessToJobObject(long long)
-# @ stub NtCallbackReturn
+@ stdcall -syscall NtCallbackReturn(ptr long long)
 # @ stub NtCancelDeviceWakeupRequest
 @ stdcall -syscall NtCancelIoFile(long ptr)
 @ stdcall -syscall NtCancelIoFileEx(long ptr ptr)
diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c
index 8bede41ee49..f79a302d4aa 100644
--- a/dlls/ntdll/tests/exception.c
+++ b/dlls/ntdll/tests/exception.c
@@ -39,6 +39,7 @@ static NTSTATUS  (WINAPI *pNtGetContextThread)(HANDLE,CONTEXT*);
 static NTSTATUS  (WINAPI *pNtSetContextThread)(HANDLE,CONTEXT*);
 static NTSTATUS  (WINAPI *pNtQueueApcThread)(HANDLE handle, PNTAPCFUNC func,
         ULONG_PTR arg1, ULONG_PTR arg2, ULONG_PTR arg3);
+static NTSTATUS  (WINAPI *pNtCallbackReturn)( void *ret_ptr, ULONG ret_len, NTSTATUS status );
 static NTSTATUS  (WINAPI *pRtlRaiseException)(EXCEPTION_RECORD *rec);
 static PVOID     (WINAPI *pRtlUnwind)(PVOID, PVOID, PEXCEPTION_RECORD, PVOID);
 static VOID      (WINAPI *pRtlCaptureContext)(CONTEXT*);
@@ -7252,6 +7253,12 @@ static void test_user_apc(void)
     ok(test_apc_called, "Test user APC was not called.\n");
 }
 
+static void test_user_callback(void)
+{
+    NTSTATUS status = pNtCallbackReturn( NULL, 0, STATUS_SUCCESS );
+    ok( status == STATUS_NO_CALLBACK_ACTIVE, "failed %x\n", status );
+}
+
 static DWORD WINAPI suspend_thread_test( void *arg )
 {
     HANDLE event = arg;
@@ -9135,6 +9142,7 @@ START_TEST(exception)
     X(NtGetContextThread);
     X(NtSetContextThread);
     X(NtQueueApcThread);
+    X(NtCallbackReturn);
     X(NtReadVirtualMemory);
     X(NtClose);
     X(RtlUnwind);
@@ -9329,6 +9337,7 @@ START_TEST(exception)
     NtCurrentTeb()->Peb->BeingDebugged = 0;
 
     test_user_apc();
+    test_user_callback();
     test_vectored_continue_handler();
     test_suspend_thread();
     test_suspend_process();
diff --git a/dlls/ntdll/unix/signal_arm.c b/dlls/ntdll/unix/signal_arm.c
index a86805b113c..1d9b02fe2a3 100644
--- a/dlls/ntdll/unix/signal_arm.c
+++ b/dlls/ntdll/unix/signal_arm.c
@@ -575,6 +575,15 @@ NTSTATUS call_user_exception_dispatcher( EXCEPTION_RECORD *rec, CONTEXT *context
 }
 
 
+/***********************************************************************
+ *           NtCallbackReturn  (NTDLL.@)
+ */
+NTSTATUS WINAPI NtCallbackReturn( void *ret_ptr, ULONG ret_len, NTSTATUS status )
+{
+    return STATUS_NO_CALLBACK_ACTIVE;
+}
+
+
 /***********************************************************************
  *           handle_syscall_fault
  *
diff --git a/dlls/ntdll/unix/signal_arm64.c b/dlls/ntdll/unix/signal_arm64.c
index 0ce6206aa9d..4f3dce3d26b 100644
--- a/dlls/ntdll/unix/signal_arm64.c
+++ b/dlls/ntdll/unix/signal_arm64.c
@@ -722,6 +722,15 @@ NTSTATUS call_user_exception_dispatcher( EXCEPTION_RECORD *rec, CONTEXT *context
 }
 
 
+/***********************************************************************
+ *           NtCallbackReturn  (NTDLL.@)
+ */
+NTSTATUS WINAPI NtCallbackReturn( void *ret_ptr, ULONG ret_len, NTSTATUS status )
+{
+    return STATUS_NO_CALLBACK_ACTIVE;
+}
+
+
 /***********************************************************************
  *           handle_syscall_fault
  *
diff --git a/dlls/ntdll/unix/signal_i386.c b/dlls/ntdll/unix/signal_i386.c
index 72aff4614ca..3f74761fc75 100644
--- a/dlls/ntdll/unix/signal_i386.c
+++ b/dlls/ntdll/unix/signal_i386.c
@@ -1579,6 +1579,15 @@ NTSTATUS call_user_exception_dispatcher( EXCEPTION_RECORD *rec, CONTEXT *context
 }
 
 
+/***********************************************************************
+ *           NtCallbackReturn  (NTDLL.@)
+ */
+NTSTATUS WINAPI NtCallbackReturn( void *ret_ptr, ULONG ret_len, NTSTATUS status )
+{
+    return STATUS_NO_CALLBACK_ACTIVE;
+}
+
+
 /**********************************************************************
  *		get_fpu_code
  *
diff --git a/dlls/ntdll/unix/signal_x86_64.c b/dlls/ntdll/unix/signal_x86_64.c
index 390121726ad..c2e3c9e1753 100644
--- a/dlls/ntdll/unix/signal_x86_64.c
+++ b/dlls/ntdll/unix/signal_x86_64.c
@@ -2275,6 +2275,15 @@ NTSTATUS call_user_exception_dispatcher( EXCEPTION_RECORD *rec, CONTEXT *context
 }
 
 
+/***********************************************************************
+ *           NtCallbackReturn  (NTDLL.@)
+ */
+NTSTATUS WINAPI NtCallbackReturn( void *ret_ptr, ULONG ret_len, NTSTATUS status )
+{
+    return STATUS_NO_CALLBACK_ACTIVE;
+}
+
+
 /***********************************************************************
  *           is_privileged_instr
  *




More information about the wine-cvs mailing list