From 0e374683cf0342bcf769d58f7c4cfa07a58e0eda Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Fri, 23 Jul 2021 17:30:11 +0200 Subject: [PATCH] wow64: Add thunks for the job object syscalls. Signed-off-by: Alexandre Julliard --- dlls/wow64/sync.c | 52 ++++++++++++++++++++++++++++++++++++++++++++ dlls/wow64/syscall.h | 3 +++ 2 files changed, 55 insertions(+) diff --git a/dlls/wow64/sync.c b/dlls/wow64/sync.c index 0a3e2cd099a..7d8ad3edac3 100644 --- a/dlls/wow64/sync.c +++ b/dlls/wow64/sync.c @@ -139,6 +139,26 @@ NTSTATUS WINAPI wow64_NtCreateIoCompletion( UINT *args ) } +/********************************************************************** + * wow64_NtCreateJobObject + */ +NTSTATUS WINAPI wow64_NtCreateJobObject( UINT *args ) +{ + ULONG *handle_ptr = get_ptr( &args ); + ACCESS_MASK access = get_ulong( &args ); + OBJECT_ATTRIBUTES32 *attr32 = get_ptr( &args ); + + struct object_attr64 attr; + HANDLE handle = 0; + NTSTATUS status; + + *handle_ptr = 0; + status = NtCreateJobObject( &handle, access, objattr_32to64( &attr, attr32 )); + put_handle( handle_ptr, handle ); + return status; +} + + /********************************************************************** * wow64_NtCreateKeyedEvent */ @@ -299,6 +319,26 @@ NTSTATUS WINAPI wow64_NtOpenIoCompletion( UINT *args ) } +/********************************************************************** + * wow64_NtOpenJobObject + */ +NTSTATUS WINAPI wow64_NtOpenJobObject( UINT *args ) +{ + ULONG *handle_ptr = get_ptr( &args ); + ACCESS_MASK access = get_ulong( &args ); + OBJECT_ATTRIBUTES32 *attr32 = get_ptr( &args ); + + struct object_attr64 attr; + HANDLE handle = 0; + NTSTATUS status; + + *handle_ptr = 0; + status = NtOpenJobObject( &handle, access, objattr_32to64( &attr, attr32 )); + put_handle( handle_ptr, handle ); + return status; +} + + /********************************************************************** * wow64_NtOpenKeyedEvent */ @@ -614,6 +654,18 @@ NTSTATUS WINAPI wow64_NtSetTimer( UINT *args ) } +/********************************************************************** + * wow64_NtTerminateJobObject + */ +NTSTATUS WINAPI wow64_NtTerminateJobObject( UINT *args ) +{ + HANDLE handle = get_handle( &args ); + NTSTATUS status = get_ulong( &args ); + + return NtTerminateJobObject( handle, status ); +} + + /********************************************************************** * wow64_NtWaitForDebugEvent */ diff --git a/dlls/wow64/syscall.h b/dlls/wow64/syscall.h index c32f4b5fece..677e92f1a37 100644 --- a/dlls/wow64/syscall.h +++ b/dlls/wow64/syscall.h @@ -32,6 +32,7 @@ SYSCALL_ENTRY( NtCreateDirectoryObject ) \ SYSCALL_ENTRY( NtCreateEvent ) \ SYSCALL_ENTRY( NtCreateIoCompletion ) \ + SYSCALL_ENTRY( NtCreateJobObject ) \ SYSCALL_ENTRY( NtCreateKeyedEvent ) \ SYSCALL_ENTRY( NtCreateMutant ) \ SYSCALL_ENTRY( NtCreateSemaphore ) \ @@ -43,6 +44,7 @@ SYSCALL_ENTRY( NtOpenDirectoryObject ) \ SYSCALL_ENTRY( NtOpenEvent ) \ SYSCALL_ENTRY( NtOpenIoCompletion ) \ + SYSCALL_ENTRY( NtOpenJobObject ) \ SYSCALL_ENTRY( NtOpenKeyedEvent ) \ SYSCALL_ENTRY( NtOpenMutant ) \ SYSCALL_ENTRY( NtOpenSemaphore ) \ @@ -68,6 +70,7 @@ SYSCALL_ENTRY( NtSetInformationDebugObject ) \ SYSCALL_ENTRY( NtSetIoCompletion ) \ SYSCALL_ENTRY( NtSetTimer ) \ + SYSCALL_ENTRY( NtTerminateJobObject ) \ SYSCALL_ENTRY( NtWaitForDebugEvent ) \ SYSCALL_ENTRY( NtWaitForKeyedEvent )