From: Zhiyi Zhang <zzhang@codeweavers.com> --- dlls/ntdll/ntdll.spec | 1 + dlls/ntdll/signal_arm64ec.c | 1 + dlls/ntdll/unix/alpc.c | 6 ++++++ dlls/wow64/syscall.c | 11 +++++++++++ 4 files changed, 19 insertions(+) diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index 84b35d44cc7..d64a680534b 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -158,6 +158,7 @@ @ stdcall -syscall NtAlpcAcceptConnectPort(ptr ptr long ptr ptr ptr ptr ptr long) @ stdcall -syscall NtAlpcConnectPort(ptr ptr ptr ptr long ptr ptr ptr ptr ptr ptr) @ stdcall -syscall NtAlpcCreatePort(ptr ptr ptr) +@ stdcall -syscall NtAlpcDisconnectPort(ptr long) @ stdcall -syscall NtAlpcSendWaitReceivePort(ptr long ptr ptr ptr ptr ptr ptr) @ stub -syscall=0x004c NtApphelpCacheControl @ stdcall -syscall NtAreMappedFilesTheSame(ptr ptr) diff --git a/dlls/ntdll/signal_arm64ec.c b/dlls/ntdll/signal_arm64ec.c index 119c606b07c..e6ede210221 100644 --- a/dlls/ntdll/signal_arm64ec.c +++ b/dlls/ntdll/signal_arm64ec.c @@ -358,6 +358,7 @@ DEFINE_WRAPPED_SYSCALL(NtAllocateVirtualMemoryEx, (HANDLE process, PVOID *ret, S DEFINE_SYSCALL(NtAlpcAcceptConnectPort, (HANDLE *communication_port, HANDLE connection_port, DWORD flags, OBJECT_ATTRIBUTES *obj_attr, ALPC_PORT_ATTRIBUTES *port_attr, void *port_context, ALPC_PORT_MESSAGE *send_msg, ALPC_MESSAGE_ATTRIBUTES *send_msg_attr, BOOLEAN accept)) DEFINE_SYSCALL(NtAlpcConnectPort, (HANDLE *port_handle, UNICODE_STRING *port_name, OBJECT_ATTRIBUTES *obj_attr, ALPC_PORT_ATTRIBUTES *port_attr, ULONG flags, SID *required_server_sid, PORT_MESSAGE *connect_msg, SIZE_T *connect_msg_size, ALPC_MESSAGE_ATTRIBUTES *send_msg_attr, ALPC_MESSAGE_ATTRIBUTES *recv_msg_attr, LARGE_INTEGER *timeout)) DEFINE_SYSCALL(NtAlpcCreatePort, (HANDLE *port_handle, OBJECT_ATTRIBUTES *obj_attr, ALPC_PORT_ATTRIBUTES *port_attr)) +DEFINE_SYSCALL(NtAlpcDisconnectPort, (HANDLE port_handle, ULONG flags)) DEFINE_SYSCALL(NtAlpcSendWaitReceivePort, (HANDLE port_handle, ULONG flags, PORT_MESSAGE *send_msg, ALPC_MESSAGE_ATTRIBUTES *send_msg_attr, PORT_MESSAGE *recv_msg, SIZE_T *recv_buffer_size, ALPC_MESSAGE_ATTRIBUTES *recv_msg_attr, LARGE_INTEGER *timeout)) DEFINE_SYSCALL(NtApphelpCacheControl, (ULONG class, void *context)) DEFINE_SYSCALL(NtAreMappedFilesTheSame, (PVOID addr1, PVOID addr2)) diff --git a/dlls/ntdll/unix/alpc.c b/dlls/ntdll/unix/alpc.c index f4b691c5033..d6ad52974b1 100644 --- a/dlls/ntdll/unix/alpc.c +++ b/dlls/ntdll/unix/alpc.c @@ -58,6 +58,12 @@ NTSTATUS WINAPI NtAlpcCreatePort( HANDLE *port_handle, OBJECT_ATTRIBUTES *obj_at return STATUS_NOT_IMPLEMENTED; } +NTSTATUS WINAPI NtAlpcDisconnectPort( HANDLE port_handle, ULONG flags ) +{ + FIXME( "%p, %#x stub!\n", port_handle, (unsigned int)flags ); + return STATUS_NOT_IMPLEMENTED; +} + NTSTATUS WINAPI NtAlpcSendWaitReceivePort( HANDLE port_handle, ULONG flags, ALPC_PORT_MESSAGE *send_msg, ALPC_MESSAGE_ATTRIBUTES *send_msg_attr, diff --git a/dlls/wow64/syscall.c b/dlls/wow64/syscall.c index 0e052d2548d..030c56b3a50 100644 --- a/dlls/wow64/syscall.c +++ b/dlls/wow64/syscall.c @@ -620,6 +620,17 @@ NTSTATUS WINAPI wow64_NtAlpcCreatePort( UINT *args ) return status; } +/********************************************************************** + * wow64_NtAlpcDisconnectPort + */ +NTSTATUS WINAPI wow64_NtAlpcDisconnectPort( UINT *args ) +{ + HANDLE handle = get_handle( &args ); + ULONG flags = get_ulong( &args ); + + return NtAlpcDisconnectPort( handle, flags ); +} + /********************************************************************** * wow64_NtAlpcSendWaitReceivePort */ -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10932