Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for
4/8/2010

The following table shows the kernel synchronization functions.

Functions Description

CreateEvent

Creates a named or an unnamed event object.

CreateMutex

Creates a named or unnamed mutex object.

CreateSemaphore

Creates a named or unnamed semaphore object.

DeleteCriticalSection

Releases all resources used by a critical section object that is not owned.

DuplicateHandle

Duplicates an object handle. The duplicate handle refers to the same object as the original handle. Therefore, any changes to the object are reflected through both handles.

EnterCriticalSection

Waits for ownership of the specified critical section object.

InitializeCriticalSection

Initializes a critical section object.

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 parameter values and exchanges the values based on the outcome of the comparison.

InterlockedDecrement

Decrements the value of the specified 32-bit variable, and checks the resulting value.

InterlockedExchange

Exchanges a pair of 32-bit values.

InterlockedExchangeAdd

Increments an Addend variable.

InterlockedExchangePointer

Exchanges a pair of values.

InterlockedIncrement

Increments the value of the specified 32-bit variable, and checks the resulting value.

InterlockedTestExchange

Performs a conditional setting of a variable.

LeaveCriticalSection

Releases ownership of the specified critical section object.

OpenEvent

Opens an existing named event object.

PulseEvent

Provides a single operation that sets to signaled the state of the specified event object and then resets it to nonsignaled after releasing the appropriate number of waiting threads.

ReleaseMutex

Releases ownership of the specified mutex object.

ReleaseSemaphore

Increases the count of the specified semaphore object by a specified amount.

ResetEvent

Sets the state of the specified event object to nonsignaled.

SetEvent

Sets the state of the specified event object to signaled.

TryEnterCriticalSection

Attempts to enter a critical section without blocking.

WaitForMultipleObjects

Returns when either any one of the specified objects is in the signaled state, or the time-out interval elapses.

WaitForSingleObject

Returns when the specified object is in the signaled state or when the time-out interval elapses.

See Also