Alexandre Julliard : wow64: Add thunks for the local port syscalls.

Alexandre Julliard julliard at winehq.org
Mon Jul 26 15:30:28 CDT 2021


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Jul 26 12:50:03 2021 +0200

wow64: Add thunks for the local port syscalls.

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

---

 dlls/wow64/sync.c    | 133 +++++++++++++++++++++++++++++++++++++++++++++++++++
 dlls/wow64/syscall.h |   8 ++++
 2 files changed, 141 insertions(+)

diff --git a/dlls/wow64/sync.c b/dlls/wow64/sync.c
index f386a7cdab3..29d2bd12c50 100644
--- a/dlls/wow64/sync.c
+++ b/dlls/wow64/sync.c
@@ -98,6 +98,23 @@ void put_section_image_info( SECTION_IMAGE_INFORMATION32 *info32, const SECTION_
 }
 
 
+/**********************************************************************
+ *           wow64_NtAcceptConnectPort
+ */
+NTSTATUS WINAPI wow64_NtAcceptConnectPort( UINT *args )
+{
+    ULONG *handle_ptr = get_ptr( &args );
+    ULONG id = get_ulong( &args );
+    LPC_MESSAGE *msg = get_ptr( &args );
+    BOOLEAN accept = get_ulong( &args );
+    LPC_SECTION_WRITE *write = get_ptr( &args );
+    LPC_SECTION_READ *read = get_ptr( &args );
+
+    FIXME( "%p %u %p %u %p %p: stub\n", handle_ptr, id, msg, accept, write, read );
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
 /**********************************************************************
  *           wow64_NtCancelTimer
  */
@@ -121,6 +138,37 @@ NTSTATUS WINAPI wow64_NtClearEvent( UINT *args )
 }
 
 
+/**********************************************************************
+ *           wow64_NtCompleteConnectPort
+ */
+NTSTATUS WINAPI wow64_NtCompleteConnectPort( UINT *args )
+{
+    HANDLE handle = get_handle( &args );
+
+    return NtCompleteConnectPort( handle );
+}
+
+
+/**********************************************************************
+ *           wow64_NtConnectPort
+ */
+NTSTATUS WINAPI wow64_NtConnectPort( UINT *args )
+{
+    ULONG *handle_ptr = get_ptr( &args );
+    UNICODE_STRING32 *name32 = get_ptr( &args );
+    SECURITY_QUALITY_OF_SERVICE *qos = get_ptr( &args );
+    LPC_SECTION_WRITE *write = get_ptr( &args );
+    LPC_SECTION_READ *read = get_ptr( &args );
+    ULONG *max_len = get_ptr( &args );
+    void *info = get_ptr( &args );
+    ULONG *info_len = get_ptr( &args );
+
+    FIXME( "%p %p %p %p %p %p %p %p: stub\n",
+           handle_ptr, name32, qos, write, read, max_len, info, info_len );
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
 /**********************************************************************
  *           wow64_NtCreateDebugObject
  */
@@ -267,6 +315,28 @@ NTSTATUS WINAPI wow64_NtCreateMutant( UINT *args )
 }
 
 
+/**********************************************************************
+ *           wow64_NtCreatePort
+ */
+NTSTATUS WINAPI wow64_NtCreatePort( UINT *args )
+{
+    ULONG *handle_ptr = get_ptr( &args );
+    OBJECT_ATTRIBUTES32 *attr32 = get_ptr( &args );
+    ULONG info_len = get_ulong( &args );
+    ULONG data_len = get_ulong( &args );
+    ULONG *reserved = get_ptr( &args );
+
+    struct object_attr64 attr;
+    HANDLE handle = 0;
+    NTSTATUS status;
+
+    *handle_ptr = 0;
+    status = NtCreatePort( &handle, objattr_32to64( &attr, attr32 ), info_len, data_len, reserved );
+    put_handle( handle_ptr, handle );
+    return status;
+}
+
+
 /**********************************************************************
  *           wow64_NtCreateSection
  */
@@ -408,6 +478,19 @@ NTSTATUS WINAPI wow64_NtDuplicateObject( UINT *args )
 }
 
 
+/**********************************************************************
+ *           wow64_NtListenPort
+ */
+NTSTATUS WINAPI wow64_NtListenPort( UINT *args )
+{
+    HANDLE handle = get_handle( &args );
+    LPC_MESSAGE *msg = get_ptr( &args );
+
+    FIXME( "%p %p: stub\n", handle, msg );
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
 /**********************************************************************
  *           wow64_NtMakeTemporaryObject
  */
@@ -983,6 +1066,35 @@ NTSTATUS WINAPI wow64_NtReleaseSemaphore( UINT *args )
 }
 
 
+/**********************************************************************
+ *           wow64_NtReplyWaitReceivePort
+ */
+NTSTATUS WINAPI wow64_NtReplyWaitReceivePort( UINT *args )
+{
+    HANDLE handle = get_handle( &args );
+    ULONG *id = get_ptr( &args );
+    LPC_MESSAGE *reply = get_ptr( &args );
+    LPC_MESSAGE *msg = get_ptr( &args );
+
+    FIXME( "%p %p %p %p: stub\n", handle, id, reply, msg );
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/**********************************************************************
+ *           wow64_NtRequestWaitReplyPort
+ */
+NTSTATUS WINAPI wow64_NtRequestWaitReplyPort( UINT *args )
+{
+    HANDLE handle = get_handle( &args );
+    LPC_MESSAGE *msg_in = get_ptr( &args );
+    LPC_MESSAGE *msg_out = get_ptr( &args );
+
+    FIXME( "%p %p %p: stub\n", handle, msg_in, msg_out );
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
 /**********************************************************************
  *           wow64_NtResetEvent
  */
@@ -995,6 +1107,27 @@ NTSTATUS WINAPI wow64_NtResetEvent( UINT *args )
 }
 
 
+/**********************************************************************
+ *           wow64_NtSecureConnectPort
+ */
+NTSTATUS WINAPI wow64_NtSecureConnectPort( UINT *args )
+{
+    ULONG *handle_ptr = get_ptr( &args );
+    UNICODE_STRING32 *name32 = get_ptr( &args );
+    SECURITY_QUALITY_OF_SERVICE *qos = get_ptr( &args );
+    LPC_SECTION_WRITE *write = get_ptr( &args );
+    SID *sid = get_ptr( &args );
+    LPC_SECTION_READ *read = get_ptr( &args );
+    ULONG *max_len = get_ptr( &args );
+    void *info = get_ptr( &args );
+    ULONG *info_len = get_ptr( &args );
+
+    FIXME( "%p %p %p %p %p %p %p %p %p: stub\n",
+           handle_ptr, name32, qos, write, sid, read, max_len, info, info_len );
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
 /**********************************************************************
  *           wow64_NtSetEvent
  */
diff --git a/dlls/wow64/syscall.h b/dlls/wow64/syscall.h
index 26948446fd1..ea7c1c229e5 100644
--- a/dlls/wow64/syscall.h
+++ b/dlls/wow64/syscall.h
@@ -22,12 +22,15 @@
 #define __WOW64_SYSCALL_H
 
 #define ALL_SYSCALLS \
+    SYSCALL_ENTRY( NtAcceptConnectPort ) \
     SYSCALL_ENTRY( NtAddAtom ) \
     SYSCALL_ENTRY( NtAllocateLocallyUniqueId ) \
     SYSCALL_ENTRY( NtAllocateUuids ) \
     SYSCALL_ENTRY( NtCancelTimer ) \
     SYSCALL_ENTRY( NtClearEvent ) \
     SYSCALL_ENTRY( NtClose ) \
+    SYSCALL_ENTRY( NtCompleteConnectPort ) \
+    SYSCALL_ENTRY( NtConnectPort ) \
     SYSCALL_ENTRY( NtCreateDebugObject ) \
     SYSCALL_ENTRY( NtCreateDirectoryObject ) \
     SYSCALL_ENTRY( NtCreateEvent ) \
@@ -35,6 +38,7 @@
     SYSCALL_ENTRY( NtCreateJobObject ) \
     SYSCALL_ENTRY( NtCreateKeyedEvent ) \
     SYSCALL_ENTRY( NtCreateMutant ) \
+    SYSCALL_ENTRY( NtCreatePort ) \
     SYSCALL_ENTRY( NtCreateSection ) \
     SYSCALL_ENTRY( NtCreateSemaphore ) \
     SYSCALL_ENTRY( NtCreateSymbolicLinkObject ) \
@@ -45,6 +49,7 @@
     SYSCALL_ENTRY( NtDuplicateObject ) \
     SYSCALL_ENTRY( NtFindAtom ) \
     SYSCALL_ENTRY( NtGetCurrentProcessorNumber ) \
+    SYSCALL_ENTRY( NtListenPort ) \
     SYSCALL_ENTRY( NtMakeTemporaryObject ) \
     SYSCALL_ENTRY( NtOpenDirectoryObject ) \
     SYSCALL_ENTRY( NtOpenEvent ) \
@@ -75,7 +80,10 @@
     SYSCALL_ENTRY( NtReleaseKeyedEvent ) \
     SYSCALL_ENTRY( NtReleaseMutant ) \
     SYSCALL_ENTRY( NtReleaseSemaphore ) \
+    SYSCALL_ENTRY( NtReplyWaitReceivePort ) \
+    SYSCALL_ENTRY( NtRequestWaitReplyPort ) \
     SYSCALL_ENTRY( NtResetEvent ) \
+    SYSCALL_ENTRY( NtSecureConnectPort ) \
     SYSCALL_ENTRY( NtSetDefaultLocale ) \
     SYSCALL_ENTRY( NtSetDefaultUILanguage ) \
     SYSCALL_ENTRY( NtSetEvent ) \




More information about the wine-cvs mailing list