wow64: Add thunks for the local port syscalls.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alexandre Julliard 2021-07-26 12:50:03 +02:00
parent ac5102602f
commit caf43278c7
2 changed files with 141 additions and 0 deletions

View File

@ -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
*/

View File

@ -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 ) \