[RFC PATCH 3/6] ntdll: Add a Unix-side wrapper function for "notify_async_direct_result".
Jinoh Kang
jinoh.kang.kr at gmail.com
Sun Jan 23 11:30:01 CST 2022
Wrap the "notify_async_direct_result" request in a function named
"notify_async".
Signed-off-by: Jinoh Kang <jinoh.kang.kr at gmail.com>
---
dlls/ntdll/unix/sync.c | 21 +++++++++++++++++++++
dlls/ntdll/unix/unix_private.h | 1 +
2 files changed, 22 insertions(+)
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
index 442243d8bcf..6b9ffd047d2 100644
--- a/dlls/ntdll/unix/sync.c
+++ b/dlls/ntdll/unix/sync.c
@@ -2510,3 +2510,24 @@ NTSTATUS WINAPI NtWaitForAlertByThreadId( const void *address, const LARGE_INTEG
}
#endif
+
+/* Notify direct completion of async and close the wait handle.
+ * This function is a no-op (returns status as-is) if the supplied handle is NULL.
+ */
+NTSTATUS notify_async( HANDLE optional_handle, NTSTATUS status, ULONG_PTR information )
+{
+ NTSTATUS ret;
+
+ if (!optional_handle) return status;
+
+ SERVER_START_REQ( notify_async_direct_result )
+ {
+ req->handle = wine_server_obj_handle( optional_handle );
+ req->status = status;
+ req->information = information;
+ ret = wine_server_call( req );
+ }
+ SERVER_END_REQ;
+
+ return ret;
+}
diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
index a79edabc37c..046818e482a 100644
--- a/dlls/ntdll/unix/unix_private.h
+++ b/dlls/ntdll/unix/unix_private.h
@@ -274,6 +274,7 @@ extern NTSTATUS get_device_info( int fd, struct _FILE_FS_DEVICE_INFORMATION *inf
extern void init_files(void) DECLSPEC_HIDDEN;
extern void init_cpu_info(void) DECLSPEC_HIDDEN;
extern void add_completion( HANDLE handle, ULONG_PTR value, NTSTATUS status, ULONG info, BOOL async ) DECLSPEC_HIDDEN;
+extern NTSTATUS notify_async( HANDLE optional_handle, NTSTATUS status, ULONG_PTR information );
extern void dbg_init(void) DECLSPEC_HIDDEN;
--
2.31.1
More information about the wine-devel
mailing list