Commit d821ddaa authored by Isaac Marovitz's avatar Isaac Marovitz Committed by Alexandre Julliard

ntdll: Implement NtQueueApcThreadEx().

parent f42391b5
......@@ -338,6 +338,7 @@
@ stdcall -syscall NtQueryVirtualMemory(long ptr long ptr long ptr)
@ stdcall -syscall NtQueryVolumeInformationFile(long ptr ptr long long)
@ stdcall -syscall NtQueueApcThread(long ptr long long long)
@ stdcall -syscall NtQueueApcThreadEx(long long ptr long long long)
@ stdcall -syscall NtRaiseException(ptr ptr long)
@ stdcall -syscall NtRaiseHardError(long long ptr ptr long ptr)
@ stdcall -syscall NtReadFile(long long ptr ptr ptr ptr long ptr ptr)
......@@ -1387,6 +1388,7 @@
@ stdcall -private -syscall ZwQueryVirtualMemory(long ptr long ptr long ptr) NtQueryVirtualMemory
@ stdcall -private -syscall ZwQueryVolumeInformationFile(long ptr ptr long long) NtQueryVolumeInformationFile
@ stdcall -private -syscall ZwQueueApcThread(long ptr long long long) NtQueueApcThread
@ stdcall -private -syscall ZwQueueApcThreadEx(long long ptr long long long) NtQueueApcThreadEx
@ stdcall -private -syscall ZwRaiseException(ptr ptr long) NtRaiseException
@ stdcall -private -syscall ZwRaiseHardError(long long ptr ptr long ptr) NtRaiseHardError
@ stdcall -private -syscall ZwReadFile(long long ptr ptr ptr ptr long ptr ptr) NtReadFile
......
......@@ -1013,6 +1013,13 @@ NTSTATUS SYSCALL_API NtQueueApcThread( HANDLE handle, PNTAPCFUNC func, ULONG_PTR
SYSCALL_FUNC( NtQueueApcThread );
}
NTSTATUS SYSCALL_API NtQueueApcThreadEx( HANDLE handle, HANDLE reserve_handle, PNTAPCFUNC func,
ULONG_PTR arg1, ULONG_PTR arg2, ULONG_PTR arg3 )
{
SYSCALL_FUNC( NtQueueApcThreadEx );
}
static NTSTATUS SYSCALL_API syscall_NtRaiseException( EXCEPTION_RECORD *rec, ARM64_NT_CONTEXT *context, BOOL first_chance )
{
__ASM_SYSCALL_FUNC( __id_NtRaiseException, syscall_NtRaiseException );
......
......@@ -1689,6 +1689,17 @@ NTSTATUS WINAPI NtQueueApcThread( HANDLE handle, PNTAPCFUNC func, ULONG_PTR arg1
}
/******************************************************************************
* NtQueueApcThreadEx (NTDLL.@)
*/
NTSTATUS WINAPI NtQueueApcThreadEx( HANDLE handle, HANDLE reserve_handle, PNTAPCFUNC func,
ULONG_PTR arg1, ULONG_PTR arg2, ULONG_PTR arg3 )
{
FIXME( "reserve handle should be used: %p\n", reserve_handle );
return NtQueueApcThread( handle, func, arg1, arg2, arg3 );
}
/***********************************************************************
* set_thread_context
*/
......
......@@ -800,6 +800,23 @@ NTSTATUS WINAPI wow64_NtQueueApcThread( UINT *args )
/**********************************************************************
* wow64_NtQueueApcThreadEx
*/
NTSTATUS WINAPI wow64_NtQueueApcThreadEx( UINT *args )
{
HANDLE handle = get_handle( &args );
HANDLE reserve_handle = get_handle( &args );
ULONG func = get_ulong( &args );
ULONG arg1 = get_ulong( &args );
ULONG arg2 = get_ulong( &args );
ULONG arg3 = get_ulong( &args );
return NtQueueApcThreadEx( handle, reserve_handle, apc_32to64( func ),
(ULONG_PTR)apc_param_32to64( func, arg1 ), arg2, arg3 );
}
/**********************************************************************
* wow64_NtRemoveProcessDebug
*/
NTSTATUS WINAPI wow64_NtRemoveProcessDebug( UINT *args )
......
......@@ -4517,6 +4517,7 @@ NTSYSAPI NTSTATUS WINAPI NtPrivilegedServiceAuditAlarm(PUNICODE_STRING,PUNICODE
NTSYSAPI NTSTATUS WINAPI NtProtectVirtualMemory(HANDLE,PVOID*,SIZE_T*,ULONG,ULONG*);
NTSYSAPI NTSTATUS WINAPI NtPulseEvent(HANDLE,LONG*);
NTSYSAPI NTSTATUS WINAPI NtQueueApcThread(HANDLE,PNTAPCFUNC,ULONG_PTR,ULONG_PTR,ULONG_PTR);
NTSYSAPI NTSTATUS WINAPI NtQueueApcThreadEx(HANDLE,HANDLE,PNTAPCFUNC,ULONG_PTR,ULONG_PTR,ULONG_PTR);
NTSYSAPI NTSTATUS WINAPI NtQueryAttributesFile(const OBJECT_ATTRIBUTES*,FILE_BASIC_INFORMATION*);
NTSYSAPI NTSTATUS WINAPI NtQueryDefaultLocale(BOOLEAN,LCID*);
NTSYSAPI NTSTATUS WINAPI NtQueryDefaultUILanguage(LANGID*);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment