On Thu Jan 30 03:39:37 2025 +0000, Aida Jonikienė wrote:
This is going to fail with no server fallback with completion waits (because `completion_wait_ops` has `no_get_inproc_sync`) That failure can have realistic consequences (like GTA 3 crashing because of an `quartz` assert caused by this function failing) So can there be an extra `STATUS_OBJECT_TYPE_MISMATCH` check here (or actually implementing completion wait support if that's even possible)?
Waits on completion_wait_ops objects are only used internally in NtRemoveIoCompletion[Ex], handles to them are not exposed to application and they are not waited on together with any other objects. What can appear here is completion port object itself. Implementing ntsync object for completion_wait object is probably quite not trivial, they have special scheduling rules and action on satisfied wait currently.