[Kernel] Simplify KeWaitForMultipleObjects.
This commit is contained in:
parent
12629fe101
commit
dcde6308bb
|
@ -789,8 +789,6 @@ dword_result_t KeWaitForMultipleObjects(dword_t count, lpdword_t objects_ptr,
|
||||||
lpvoid_t wait_block_array_ptr) {
|
lpvoid_t wait_block_array_ptr) {
|
||||||
assert_true(wait_type <= 1);
|
assert_true(wait_type <= 1);
|
||||||
|
|
||||||
X_STATUS result = X_STATUS_SUCCESS;
|
|
||||||
|
|
||||||
std::vector<object_ref<XObject>> objects;
|
std::vector<object_ref<XObject>> objects;
|
||||||
for (uint32_t n = 0; n < count; n++) {
|
for (uint32_t n = 0; n < count; n++) {
|
||||||
auto object_ptr = kernel_memory()->TranslateVirtual(objects_ptr[n]);
|
auto object_ptr = kernel_memory()->TranslateVirtual(objects_ptr[n]);
|
||||||
|
@ -804,12 +802,10 @@ dword_result_t KeWaitForMultipleObjects(dword_t count, lpdword_t objects_ptr,
|
||||||
}
|
}
|
||||||
|
|
||||||
uint64_t timeout = timeout_ptr ? static_cast<uint64_t>(*timeout_ptr) : 0u;
|
uint64_t timeout = timeout_ptr ? static_cast<uint64_t>(*timeout_ptr) : 0u;
|
||||||
result = XObject::WaitMultiple(uint32_t(objects.size()),
|
return XObject::WaitMultiple(uint32_t(objects.size()),
|
||||||
reinterpret_cast<XObject**>(objects.data()),
|
reinterpret_cast<XObject**>(objects.data()),
|
||||||
wait_type, wait_reason, processor_mode,
|
wait_type, wait_reason, processor_mode,
|
||||||
alertable, timeout_ptr ? &timeout : nullptr);
|
alertable, timeout_ptr ? &timeout : nullptr);
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
DECLARE_XBOXKRNL_EXPORT3(KeWaitForMultipleObjects, kThreading, kImplemented,
|
DECLARE_XBOXKRNL_EXPORT3(KeWaitForMultipleObjects, kThreading, kImplemented,
|
||||||
kBlocking, kHighFrequency);
|
kBlocking, kHighFrequency);
|
||||||
|
|
Loading…
Reference in New Issue