Prepare more timer syscalls

This commit is contained in:
momo5502
2025-06-01 14:02:36 +02:00
parent 009961620b
commit aa763c8392
4 changed files with 14 additions and 0 deletions

View File

@@ -58,6 +58,10 @@ namespace
return !e || e->try_lock(current_thread_id);
}
case handle_types::timer: {
return true; // TODO
}
case handle_types::semaphore: {
auto* s = c.semaphores.get(h);
if (s)

View File

@@ -361,6 +361,8 @@ namespace syscalls
NTSTATUS handle_NtCreateTimer2(const syscall_context& c, emulator_object<handle> timer_handle, uint64_t reserved,
emulator_object<OBJECT_ATTRIBUTES<EmulatorTraits<Emu64>>> object_attributes,
ULONG attributes, ACCESS_MASK desired_access);
NTSTATUS handle_NtSetTimerEx(const syscall_context& c, handle timer_handle, uint32_t timer_set_info_class,
uint64_t timer_set_information, ULONG timer_set_information_length);
// syscalls/token.cpp:
NTSTATUS
@@ -1104,6 +1106,7 @@ void syscall_dispatcher::add_handlers(std::map<std::string, syscall_handler>& ha
add_handler(NtUserSetCursor);
add_handler(NtOpenMutant);
add_handler(NtCreateTimer2);
add_handler(NtSetTimerEx);
#undef add_handler
}

View File

@@ -119,6 +119,7 @@ namespace syscalls
return h.value.type == handle_types::thread //
|| h.value.type == handle_types::mutant //
|| h.value.type == handle_types::semaphore //
|| h.value.type == handle_types::timer //
|| h.value.type == handle_types::event;
}

View File

@@ -69,4 +69,10 @@ namespace syscalls
return STATUS_SUCCESS;
}
NTSTATUS handle_NtSetTimerEx(const syscall_context& /*c*/, handle /*timer_handle*/,
uint32_t /*timer_set_info_class*/, uint64_t /*timer_set_information*/,
ULONG /*timer_set_information_length*/)
{
return STATUS_NOT_SUPPORTED;
}
}