Waits for one or more object to enter a signaled state.
Count
- the number of handles passed in theHandles
parameter, up toMAXIMUM_WAIT_OBJECTS
(64).Handles
- a pointer to an array of handles. Each handle must grantSYNCHRONIZE
access.WaitType
- the type of wait to perform, eitherWaitAll
orWaitAny
.Alertable
- determines whether the wait should be altertable. This allows external triggers (such as APCs or calls toNtAlertThread
) to interrupt wait prematurely.Timeout
- an optional pointer to a variable that stores the wait internal. A negative value indicates relative timeout for the specified number of 100-nanosecond intervals. To wait a specific number of milliseconds, multiply them by-10,000
. Positive values indicate an absolute time.NULL
indicates an infinite timeout.
STATUS_WAIT_0
..STATUS_WAIT_63
- the thread woke due to the n'th object being signaled.STATUS_ABANDONED_WAIT_0
..STATUS_ABANDONED_WAIT_63
- the thread woke due to the n'th passed mutex becoming abandoned.STATUS_TIMEOUT
- the thread woke due to the timeout.STATUS_USER_APC
- the wait was interrupted by an APC.STATUS_ALERTED
- the wait was interrupted by a call toNtAlertThread
.
Despite the name, NtAlertThreadByThreadId
is unrelated to alertable waits and cannot interrupt them.
NtWaitForSingleObject
NtDelayExecution
NtAlertThread
NtQueueApcThread