Synchronization Functions (Compact 2013)

August 12, 2016

The following table shows the kernel synchronization functions.

Functions

Description

CeAcquireRwLock

Requests either shared or exclusive access to a reader/writer lock.

CeCreateRwLock

Creates a reader/writer lock.

CeDeleteRwLock

Deletes the specified reader/writer lock object.

CeIsRwLockAcquired

Determines whether the calling thread holds a specified reader/writer lock.

CeReleaseRwLock

Releases either shared or exclusive access to a reader/writer lock.

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

Tries 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

Reference

Synchronization Reference