mirror of
https://github.com/momo5502/emulator.git
synced 2026-01-20 12:13:57 +00:00
Support all APC queue syscalls
This commit is contained in:
@@ -294,6 +294,11 @@ namespace syscalls
|
||||
NTSTATUS handle_NtQueueApcThreadEx2(const syscall_context& c, handle thread_handle, handle reserve_handle,
|
||||
uint32_t apc_flags, uint64_t apc_routine, uint64_t apc_argument1,
|
||||
uint64_t apc_argument2, uint64_t apc_argument3);
|
||||
NTSTATUS handle_NtQueueApcThreadEx(const syscall_context& c, handle thread_handle, handle reserve_handle,
|
||||
uint64_t apc_routine, uint64_t apc_argument1, uint64_t apc_argument2,
|
||||
uint64_t apc_argument3);
|
||||
NTSTATUS handle_NtQueueApcThread(const syscall_context& c, handle thread_handle, uint64_t apc_routine,
|
||||
uint64_t apc_argument1, uint64_t apc_argument2, uint64_t apc_argument3);
|
||||
|
||||
// syscalls/timer.cpp:
|
||||
NTSTATUS handle_NtQueryTimerResolution(const syscall_context&, emulator_object<ULONG> maximum_time,
|
||||
@@ -756,6 +761,8 @@ void syscall_dispatcher::add_handlers(std::map<std::string, syscall_handler>& ha
|
||||
add_handler(NtTraceControl);
|
||||
add_handler(NtUserGetProcessUIContextInformation);
|
||||
add_handler(NtQueueApcThreadEx2);
|
||||
add_handler(NtQueueApcThreadEx);
|
||||
add_handler(NtQueueApcThread);
|
||||
|
||||
#undef add_handler
|
||||
}
|
||||
@@ -594,4 +594,21 @@ namespace syscalls
|
||||
|
||||
return STATUS_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
NTSTATUS handle_NtQueueApcThreadEx(const syscall_context& c, const handle thread_handle,
|
||||
const handle reserve_handle, const uint64_t apc_routine,
|
||||
const uint64_t apc_argument1, const uint64_t apc_argument2,
|
||||
const uint64_t apc_argument3)
|
||||
{
|
||||
return handle_NtQueueApcThreadEx2(c, thread_handle, reserve_handle, 0, apc_routine, apc_argument1,
|
||||
apc_argument2, apc_argument3);
|
||||
}
|
||||
|
||||
NTSTATUS handle_NtQueueApcThread(const syscall_context& c, const handle thread_handle, const uint64_t apc_routine,
|
||||
const uint64_t apc_argument1, const uint64_t apc_argument2,
|
||||
const uint64_t apc_argument3)
|
||||
{
|
||||
return handle_NtQueueApcThreadEx(c, thread_handle, make_handle(0), apc_routine, apc_argument1, apc_argument2,
|
||||
apc_argument3);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user