| Platform SDK: DLLs, Processes, and Threads |
The following functions are used in synchronization.
| Asynchronous Function | Description |
|---|---|
| APCProc | An application-defined callback function used with the QueueUserAPC function. |
| GetOverlappedResult | Retrieves the results of an overlapped operation. |
| QueueUserAPC | Adds a user-mode asynchronous procedure call (APC) object to the APC queue of the specified thread. |
| Critical-Section Function | Description |
|---|---|
| DeleteCriticalSection | Releases all resources used by an unowned critical section object. |
| EnterCriticalSection | Waits for ownership of the specified critical section object. |
| InitializeCriticalSection | Initializes a critical section object. |
| InitializeCriticalSectionAndSpinCount | Initializes a critical section object and sets the spin count for the critical section. |
| LeaveCriticalSection | Releases ownership of the specified critical section object. |
| SetCriticalSectionSpinCount | Sets the spin count for the specified critical section. |
| TryEnterCriticalSection | Attempts to enter a critical section without blocking. |
| Event Function | Description |
|---|---|
| CreateEvent | Creates or opens a named or unnamed event object. |
| OpenEvent | Opens an existing named event object. |
| PulseEvent | Sets the specified event object to the signaled state and then resets it to the nonsignaled state after releasing the appropriate number of waiting threads. |
| ResetEvent | Sets the specified event object to the nonsignaled state. |
| SetEvent | Sets the specified event object to the signaled state. |
| Interlocked Function | Description |
|---|---|
| InterlockedCompareExchange | Performs an atomic comparison of the specified values and exchanges the values, based on the outcome of the comparison. |
| InterlockedCompareExchangePointer | Performs an atomic comparison of the specified values and exchange of the values, based on the outcome of the comparison. |
| InterlockedDecrement | Decrements (decreases by one) the value of the specified variable and checks the resulting value. |
| InterlockedExchange | Atomically exchanges a pair of values. |
| InterlockedExchangeAdd | Performs an atomic addition of an increment value to an addend variable. |
| InterlockedExchangePointer | Atomically exchanges a pair of values. |
| InterlockedIncrement | Increments (increases by one) the value of the specified variable and checks the resulting value. |
| Mutex Function | Description |
|---|---|
| CreateMutex | Creates or opens a named or unnamed mutex object. |
| OpenMutex | Opens an existing named mutex object. |
| ReleaseMutex | Releases ownership of the specified mutex object. |
| Semaphore Function | Description |
|---|---|
| CreateSemaphore | Creates or opens a named or unnamed semaphore object. |
| OpenSemaphore | Opens an existing named semaphore object. |
| ReleaseSemaphore | Increases the count of the specified semaphore object by a specified amount. |
| Timer-Queue Timer Function | Description |
|---|---|
| ChangeTimerQueueTimer | Updates a timer-queue timer. |
| CreateTimerQueue | Creates a queue for timers. |
| CreateTimerQueueTimer | Creates a timer-queue timer. |
| DeleteTimerQueue | Deletes a timer queue. |
| DeleteTimerQueueEx | Deletes a timer queue. |
| DeleteTimerQueueTimer | Cancels a timer-queue timer. |
| Wait Function | Description |
|---|---|
| MsgWaitForMultipleObjects | Returns when the specified criteria for the specified objects is met. |
| MsgWaitForMultipleObjectsEx | Returns when the specified criteria for the specified objects is met. |
| RegisterWaitForSingleObject | Directs a wait thread in the thread pool to wait on the object. |
| SignalObjectAndWait | Allows the caller to atomically signal an object and wait on another object. |
| UnregisterWait | Cancels a registered wait operation. |
| UnregisterWaitEx | Cancels a registered wait operation. |
| WaitForMultipleObjects | Returns when the specified criteria for the specified objects is met. |
| WaitForMultipleObjectsEx | Returns when the specified criteria for the specified objects is met. |
| WaitForSingleObject | Returns when the specified criteria for the specified object is met. |
| WaitForSingleObjectEx | Returns when the specified criteria for the specified object is met. |
| WaitOrTimerCallback | Returns when the specified criteria is met. |
| Waitable Timer Function | Description |
|---|---|
| CancelWaitableTimer | Sets the specified waitable timer to the inactive state. |
| CreateWaitableTimer | Creates or opens a waitable timer object. |
| OpenWaitableTimer | Opens an existing named waitable timer object. |
| SetWaitableTimer | Activates the specified waitable timer. |
| TimerAPCProc | Application-defined timer completion routine used with the SetWaitableTimer function. |