Interprocess Synchronization Objects

The interprocess synchronization objects (event, mutex, semaphore, and timer) are securable. Critical section objects, which are per-process synchronization objects, are not securable.

Event Objects

The valid access rights for event objects are STANDARD_RIGHTS_REQUIRED and the rights given in the following table.

Value Meaning
EVENT_ALL_ACCESS Specifies all possible access rights for an event object.
EVENT_MODIFY_STATE Specifies modify state (release) access.
SYNCHRONIZE Specifies synchronization (wait or release) access.

The handle returned by the CreateEvent function has EVENT_ALL_ACCESS access to the semaphore object.

Mutex Objects

The valid access rights for mutex objects are STANDARD_RIGHTS_REQUIRED and the rights given in the following table.

Value Meaning
MUTEX_ALL_ACCESS Specifies all possible access rights for a mutex object.
MUTEX_MODIFY_STATE Specifies modify state (release) access.
SYNCHRONIZE Specifies synchronization (wait or release) access.

The handle returned by the CreateMutex function has MUTEX_ALL_ACCESS access to the mutex object.

Semaphore Objects

The valid access rights for semaphore objects are STANDARD_RIGHTS_REQUIRED and the rights given in the following table.

Value Meaning
SEMAPHORE_ALL_ACCESS Specifies all possible access rights for a semaphore object.
SEMAPHORE_MODIFY_STATE Specifies modify state (release) access.
SYNCHRONIZE Specifies synchronization (wait) access.

The handle returned by the CreateSemaphore function has SEMAPHORE_ALL_ACCESS access to the semaphore object.

Timer Objects

The valid access rights for timer objects are STANDARD_RIGHTS_REQUIRED and the rights given in the following table.

Value Meaning
TIMER_ALL_ACCESS Specifies all possible access rights for a timer object.
TIMER_MODIFY_STATE Specifies modify state (release) access.
SYNCHRONIZE Specifies synchronization (wait or release) access.

The handle returned by the CreateWaitableTimer function has TIMER_ALL_ACCESS access to the timer object.