Funciones de sincronización

Las siguientes funciones se usan en la sincronización.

Funciones asincrónicas

Función asincrónica Descripción
APCProc Función de devolución de llamada definida por la aplicación que se usa con la función QueueUserAPC .
GetOverlappedResult Recupera los resultados de una operación superpuesta.
GetOverlappedResultEx Recupera los resultados de una operación superpuesta dentro de un intervalo de tiempo de espera especificado.
QueueUserAPC Agrega un objeto de llamada de procedimiento asincrónico en modo de usuario (APC) a la cola de APC del subproceso especificado.

 

Variables de condición y funciones de bloqueo SRW

Variable de condición y función de bloqueo SRW Descripción
AcquireSRWLockExclusive Adquiere un bloqueo ligero de lector/escritor (SRW) en modo exclusivo.
AcquireSRWLockShared Adquiere un bloqueo ligero de lector/escritor (SRW) en modo compartido.
InitializeConditionVariable Inicializa una variable de condición.
InitializeSRWLock Inicialice un bloqueo ligero de lector/escritor (SRW).
ReleaseSRWLockExclusive Libera un bloqueo ligero de lector/escritor (SRW) que se adquirió en modo exclusivo.
ReleaseSRWLockShared Libera un bloqueo ligero de lector/escritor (SRW) que se adquirió en modo compartido.
SleepConditionVariableCS Se suspende en la variable de condición especificada y libera la sección crítica especificada como una operación atómica.
SleepConditionVariableSRW Se suspende en la variable de condición especificada y libera el bloqueo especificado como una operación atómica.
TryAcquireSRWLockExclusive Intenta adquirir un bloqueo ligero de lector/escritor (SRW) en modo exclusivo. Si la llamada se realiza correctamente, el subproceso que realiza la llamada toma propiedad del bloqueo.
TryAcquireSRWLockShared Intenta adquirir un bloqueo ligero de lector/escritor (SRW) en modo compartido. Si la llamada se realiza correctamente, el subproceso que realiza la llamada toma propiedad del bloqueo.
WakeAllConditionVariable Despierte todos los subprocesos en espera de la variable de condición especificada.
WakeConditionVariable Reactivar un único subproceso en espera de la variable de condición especificada.

 

Funciones de sección críticas

Función de sección crítica Descripción
DeleteCriticalSection Libera todos los recursos utilizados por un objeto de sección crítica no propietario.
EnterCriticalSection Espera la propiedad del objeto de sección crítica especificado.
InitializeCriticalSection Inicializa un objeto de sección crítico.
InitializeCriticalSectionAndSpinCount Inicializa un objeto de sección crítico y establece el número de giros de la sección crítica.
InitializeCriticalSectionEx Inicializa un objeto de sección crítico con un número de giros y marcas opcionales.
LeaveCriticalSection Libera la propiedad del objeto de sección crítico especificado.
SetCriticalSectionSpinCount Establece el número de giros de la sección crítica especificada.
TryEnterCriticalSection Intenta escribir una sección crítica sin bloqueo.

 

Funciones de eventos

Función de evento Descripción
CreateEvent Crea o abre un objeto de evento con nombre o sin nombre.
CreateEventEx Crea o abre un objeto de evento con nombre o sin nombre y devuelve un identificador al objeto .
OpenEvent Abre un objeto de evento con nombre existente.
PulseEvent Establece el objeto de evento especificado en el estado señalado y, a continuación, lo restablece al estado no asignado después de liberar el número adecuado de subprocesos en espera.
ResetEvent Establece el objeto de evento especificado en el estado no asignado.
SetEvent Establece el objeto de evento especificado en el estado señalado.

 

Funciones de inicialización única

Función de inicialización única Descripción
InitOnceBeginInitialize Comienza la inicialización única.
InitOnceComplete Completa la inicialización única.
InitOnceExecuteOnce Ejecuta la función especificada correctamente una vez. Ningún otro subproceso que especifique la misma estructura de inicialización única puede ejecutar esta función mientras el subproceso actual la ejecuta.
InitOnceInitialize Inicializa una estructura de inicialización única.

 

Funciones interbloqueadas

Función interbloqueada Descripción
InterlockedAdd Realiza una operación de suma atómica en los valores LONG especificados.
InterlockedAddAcquire Realiza una operación de suma atómica en los valores LONG especificados. La operación se realiza con la semántica de ordenación de memoria.
InterlockedAddRelease Realiza una operación de suma atómica en los valores LONG especificados. La operación se realiza con la semántica de ordenación de memoria de liberación.
InterlockedAddNoFence Realiza una operación de suma atómica en los valores LONG especificados. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedAdd64 Realiza una operación de suma atómica en los valores de LONGLONG especificados.
InterlockedAddAcquire64 Realiza una operación de suma atómica en los valores de LONGLONG especificados. La operación se realiza con la semántica de ordenación de memoria.
InterlockedAddRelease64 Realiza una operación de suma atómica en los valores de LONGLONG especificados. La operación se realiza con la semántica de ordenación de memoria de liberación.
InterlockedAddNoFence64 Realiza una operación de suma atómica en los valores de LONGLONG especificados. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedAnd Realiza una operación AND atómica en los valores LONG especificados.
InterlockedAndAcquire Realiza una operación AND atómica en los valores LONG especificados. La operación se realiza con la semántica de ordenación de memoria.
InterlockedAndRelease Realiza una operación AND atómica en los valores LONG especificados. La operación se realiza con la semántica de ordenación de memoria de liberación.
InterlockedAndNoFence Realiza una operación AND atómica en los valores LONG especificados. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedAnd8 Realiza una operación AND atómica en los valores char especificados.
InterlockedAnd8Acquire Realiza una operación AND atómica en los valores char especificados. La operación se realiza con la semántica de ordenación de memoria.
InterlockedAnd8Release Realiza una operación AND atómica en los valores char especificados. La operación se realiza con la semántica de ordenación de memoria de liberación.
InterlockedAnd8NoFence Realiza una operación AND atómica en los valores char especificados. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedAnd16 Realiza una operación AND atómica en los valores SHORT especificados.
InterlockedAnd16Acquire Realiza una operación AND atómica en los valores SHORT especificados. La operación se realiza con la semántica de ordenación de memoria.
InterlockedAnd16Release Realiza una operación AND atómica en los valores SHORT especificados. La operación se realiza con la semántica de ordenación de memoria de liberación.
InterlockedAnd16NoFence Realiza una operación AND atómica en los valores SHORT especificados. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedAnd64 Realiza una operación AND atómica en los valores longlong especificados.
InterlockedAnd64Acquire Realiza una operación AND atómica en los valores longlong especificados. La operación se realiza con la semántica de ordenación de memoria.
InterlockedAnd64Release Realiza una operación AND atómica en los valores longlong especificados. La operación se realiza con la semántica de ordenación de memoria de liberación.
InterlockedAnd64NoFence Realiza una operación AND atómica en los valores longlong especificados. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedBitTestAndComplement Comprueba el bit especificado del valor LONG especificado y lo complementa.
InterlockedBitTestAndComplement64 Comprueba el bit especificado del valor LONG64 especificado y lo complementa. La operación es atómica
InterlockedBitTestAndResetAcquire Comprueba el bit especificado del valor LONG especificado y lo establece en 0. La operación es atómica y se realiza con la semántica de ordenación de memoria
InterlockedBitTestAndResetRelease Comprueba el bit especificado del valor LONG especificado y lo establece en 0. La operación es atómica y se realiza mediante la semántica de liberación de memoria.
InterlockedBitTestAndSetAcquire Comprueba el bit especificado del valor LONG especificado y lo establece en 1. La operación es atómica y se realiza con la semántica de ordenación de memoria
InterlockedBitTestAndSetRelease Comprueba el bit especificado del valor LONG especificado y lo establece en 1. La operación es atómica y se realiza con la semántica de ordenación de memoria de liberación.
InterlockedBitTestAndReset Comprueba el bit especificado del valor LONG especificado y lo establece en 0.
InterlockedBitTestAndReset64 Comprueba el bit especificado del valor LONG64 especificado y lo establece en 0.
InterlockedBitTestAndSet Comprueba el bit especificado del valor LONG especificado y lo establece en 1.
InterlockedBitTestAndSet64 Comprueba el bit especificado del valor LONG64 especificado y lo establece en 1.
InterlockedCompare64Exchange128 Realiza una operación atómica de comparación e intercambio en los valores especificados. La función compara los valores de 64 bits especificados e intercambia con el valor de 128 bits especificado en función del resultado de la comparación.
InterlockedCompare64ExchangeAcquire128 Realiza una operación atómica de comparación e intercambio en los valores especificados. La función compara los valores de 64 bits especificados e intercambia con el valor de 128 bits especificado en función del resultado de la comparación. La operación se realiza con la semántica de ordenación de memoria.
InterlockedCompare64ExchangeRelease128 Realiza una operación atómica de comparación e intercambio en los valores especificados. La función compara los valores de 64 bits especificados e intercambia con el valor de 128 bits especificado en función del resultado de la comparación. La operación se realiza con la semántica de ordenación de memoria de liberación.
InterlockedCompareExchange Realiza una operación atómica de comparación e intercambio en los valores especificados. La función compara dos valores de 32 bits especificados e intercambia con otro valor de 32 bits en función del resultado de la comparación.
InterlockedCompareExchangeAcquire Realiza una operación atómica de comparación e intercambio en los valores especificados. La función compara dos valores de 32 bits especificados e intercambia con otro valor de 32 bits en función del resultado de la comparación. La operación se realiza con la semántica de ordenación de memoria.
InterlockedCompareExchangeRelease Realiza una operación atómica de comparación e intercambio en los valores especificados. La función compara dos valores de 32 bits especificados e intercambia con otro valor de 32 bits en función del resultado de la comparación. El intercambio se realiza con la semántica de ordenación de memoria de liberación.
InterlockedCompareExchangeNoFence Realiza una operación atómica de comparación e intercambio en los valores especificados. La función compara dos valores de 32 bits especificados e intercambia con otro valor de 32 bits en función del resultado de la comparación. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedCompareExchange64 Realiza una operación atómica de comparación e intercambio en los valores especificados. La función compara dos valores de 64 bits especificados e intercambia con otro valor de 64 bits en función del resultado de la comparación.
InterlockedCompareExchangeAcquire64 Realiza una operación atómica de comparación e intercambio en los valores especificados. La función compara dos valores de 64 bits especificados e intercambia con otro valor de 64 bits en función del resultado de la comparación. El intercambio se realiza con la semántica de ordenación de memoria.
InterlockedCompareExchangeRelease64 Realiza una operación atómica de comparación e intercambio en los valores especificados. La función compara dos valores de 64 bits especificados e intercambia con otro valor de 64 bits en función del resultado de la comparación. El intercambio se realiza con la semántica de ordenación de memoria de liberación.
InterlockedCompareExchangeNoFence64 Realiza una operación atómica de comparación e intercambio en los valores especificados. La función compara dos valores de 64 bits especificados e intercambia con otro valor de 64 bits en función del resultado de la comparación. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedCompareExchange16 Realiza una operación atómica de comparación e intercambio en los valores especificados. La función compara dos valores de 16 bits especificados e intercambia con otro valor de 16 bits en función del resultado de la comparación.
InterlockedCompareExchange16Acquire Realiza una operación atómica de comparación e intercambio en los valores especificados. La función compara dos valores de 16 bits especificados e intercambia con otro valor de 16 bits en función del resultado de la comparación. La operación se realiza con la semántica de ordenación de memoria
InterlockedCompareExchange16Release Realiza una operación atómica de comparación e intercambio en los valores especificados. La función compara dos valores de 16 bits especificados e intercambia con otro valor de 16 bits en función del resultado de la comparación. El intercambio se realiza con la semántica de ordenación de memoria de liberación
InterlockedCompareExchange16NoFence Realiza una operación atómica de comparación e intercambio en los valores especificados. La función compara dos valores de 16 bits especificados e intercambia con otro valor de 16 bits en función del resultado de la comparación. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedCompareExchange128 Realiza una operación atómica de comparación e intercambio en los valores especificados. La función compara dos valores de 128 bits especificados e intercambia con otro valor de 128 bits en función del resultado de la comparación.
InterlockedCompareExchangePointer Realiza una operación atómica de comparación e intercambio en los valores de puntero especificados. La función compara dos valores de puntero especificados e intercambia con otro valor de puntero en función del resultado de la comparación.
InterlockedCompareExchangePointerAcquire Realiza una operación atómica de comparación e intercambio en los valores de puntero especificados. La función compara dos valores de puntero especificados e intercambia con otro valor de puntero en función del resultado de la comparación. La operación se realiza con la semántica de ordenación de memoria.
InterlockedCompareExchangePointerRelease Realiza una operación atómica de comparación e intercambio en los valores de puntero especificados. La función compara dos valores de puntero especificados e intercambia con otro valor de puntero en función del resultado de la comparación. La operación se realiza con la semántica de ordenación de memoria de liberación.
InterlockedCompareExchangePointerNoFence Realiza una operación atómica de comparación e intercambio en los valores especificados. La función compara dos valores de puntero especificados e intercambia con otro valor de puntero en función del resultado de la comparación. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedDecrement Disminuye (disminuye en uno) el valor de la variable de 32 bits especificada como una operación atómica.
InterlockedDecrementAcquire Disminuye (disminuye en uno) el valor de la variable de 32 bits especificada como una operación atómica. La operación se realiza con la semántica de ordenación de memoria.
InterlockedDecrementRelease Disminuye (disminuye en uno) el valor de la variable de 32 bits especificada como una operación atómica. La operación se realiza con la semántica de ordenación de memoria de liberación.
InterlockedDecrementNoFence Disminuye (disminuye en uno) el valor de la variable de 32 bits especificada como una operación atómica. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedDecrement16 Disminuye (disminuye en uno) el valor de la variable de 16 bits especificada como una operación atómica.
InterlockedDecrement16Acquire Disminuye (disminuye en uno) el valor de la variable de 16 bits especificada como una operación atómica. La operación se realiza con la semántica de ordenación de memoria
InterlockedDecrement16Release Disminuye (disminuye en uno) el valor de la variable de 16 bits especificada como una operación atómica. La operación se realiza con la semántica de ordenación de memoria de liberación
InterlockedDecrement16NoFence Disminuye (disminuye en uno) el valor de la variable de 16 bits especificada como una operación atómica. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedDecrement64 Disminuye (disminuye en uno) el valor de la variable de 64 bits especificada como una operación atómica.
InterlockedDecrementAcquire64 Disminuye (disminuye en uno) el valor de la variable de 64 bits especificada como una operación atómica. La operación se realiza con la semántica de ordenación de memoria.
InterlockedDecrementRelease64 Disminuye (disminuye en uno) el valor de la variable de 64 bits especificada como una operación atómica. La operación se realiza con la semántica de ordenación de memoria de liberación.
InterlockedDecrementNoFence64 Disminuye (disminuye en uno) el valor de la variable de 64 bits especificada como una operación atómica. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedExchange Establece una variable de 32 bits en el valor especificado como una operación atómica.
InterlockedExchangeAcquire Establece una variable de 32 bits en el valor especificado como una operación atómica. La operación se realiza con la semántica de ordenación de memoria.
InterlockedExchangeNoFence Establece una variable de 64 bits en el valor especificado como una operación atómica. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedExchange8 Establece una variable de 8 bits en el valor especificado como una operación atómica.
InterlockedExchange16 Establece una variable de 16 bits en el valor especificado como una operación atómica.
InterlockedExchange16Acquire Establece una variable de 16 bits en el valor especificado como una operación atómica. La operación se realiza mediante la semántica de ordenación de memoria
InterlockedExchange16NoFence Establece una variable de 16 bits en el valor especificado como una operación atómica. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedExchange64 Establece una variable de 64 bits en el valor especificado como una operación atómica.
InterlockedExchangeAcquire64 Establece una variable de 32 bits en el valor especificado como una operación atómica. La operación se realiza con la semántica de ordenación de memoria.
InterlockedExchangeNoFence64 Establece una variable de 64 bits en el valor especificado como una operación atómica. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedExchangePointer Intercambia de forma atómica un par de valores de puntero.
InterlockedExchangePointerAcquire Intercambia de forma atómica un par de valores de puntero. La operación se realiza con la semántica de ordenación de memoria.
InterlockedExchangePointerNoFence Intercambia de forma atómica un par de direcciones. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedExchangeSubtract Realiza una resta atómica de dos valores.
InterlockedExchangeAdd Realiza una adición atómica de dos valores de 32 bits.
InterlockedExchangeAddAcquire Realiza una adición atómica de dos valores de 32 bits. La operación se realiza con la semántica de ordenación de memoria.
InterlockedExchangeAddRelease Realiza una adición atómica de dos valores de 32 bits. La operación se realiza con la semántica de ordenación de memoria de liberación.
InterlockedExchangeAddNoFence Realiza una adición atómica de dos valores de 32 bits. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedExchangeAdd64 Realiza una adición atómica de dos valores de 64 bits.
InterlockedExchangeAddAcquire64 Realiza una adición atómica de dos valores de 64 bits. La operación se realiza con la semántica de ordenación de memoria.
InterlockedExchangeAddRelease64 Realiza una adición atómica de dos valores de 64 bits. La operación se realiza con la semántica de ordenación de memoria de liberación.
InterlockedExchangeAddNoFence64 Realiza una adición atómica de dos valores de 64 bits. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedIncrement Incrementa (aumenta en uno) el valor de la variable de 32 bits especificada como una operación atómica.
InterlockedIncrementAcquire Incrementa (aumenta en uno) el valor de la variable de 32 bits especificada como una operación atómica. La operación se realiza mediante la semántica de ordenación de memoria.
InterlockedIncrementRelease Incrementa (aumenta en uno) el valor de la variable de 32 bits especificada como una operación atómica. La operación se realiza mediante la semántica de ordenación de memoria de liberación.
InterlockedIncrementNoFence Incrementa (aumenta en uno) el valor de la variable de 32 bits especificada como una operación atómica. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedIncrement16 Incrementa (aumenta en uno) el valor de la variable de 16 bits especificada como una operación atómica.
InterlockedIncrement16Acquire Incrementa (aumenta en uno) el valor de la variable de 16 bits especificada como una operación atómica. La operación se realiza mediante la semántica de ordenación de memoria
InterlockedIncrement16Release Incrementa (aumenta en uno) el valor de la variable de 16 bits especificada como una operación atómica. La operación se realiza mediante la semántica de ordenación de memoria de liberación.
InterlockedIncrement16NoFence Incrementa (aumenta en uno) el valor de la variable de 16 bits especificada como una operación atómica. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedIncrement64 Incrementa (aumenta en uno) el valor de la variable de 64 bits especificada como una operación atómica.
InterlockedIncrementAcquire64 Incrementa (aumenta en uno) el valor de la variable de 64 bits especificada como una operación atómica. La operación se realiza mediante la semántica de ordenación de memoria.
InterlockedIncrementRelease64 Incrementa (aumenta en uno) el valor de la variable de 64 bits especificada como una operación atómica. La operación se realiza mediante la semántica de ordenación de memoria de liberación.
InterlockedIncrementNoFence64 Incrementa (aumenta en uno) el valor de la variable de 64 bits especificada como una operación atómica. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedOr Realiza una operación OR atómica en los valores LONG especificados.
InterlockedOrAcquire Realiza una operación OR atómica en los valores LONG especificados. La operación se realiza con la semántica de ordenación de memoria.
InterlockedOrRelease Realiza una operación OR atómica en los valores LONG especificados. La operación se realiza con la semántica de ordenación de memoria de liberación.
InterlockedOrNoFence Realiza una operación OR atómica en los valores LONG especificados. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedOr8 Realiza una operación OR atómica en los valores char especificados.
InterlockedOr8Acquire Realiza una operación OR atómica en los valores char especificados. La operación se realiza con la semántica de ordenación de memoria.
InterlockedOr8Release Realiza una operación OR atómica en los valores char especificados. La operación se realiza con la semántica de ordenación de memoria de liberación.
InterlockedOr8NoFence Realiza una operación OR atómica en los valores char especificados. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedOr16 Realiza una operación OR atómica en los valores SHORT especificados.
InterlockedOr16Acquire Realiza una operación OR atómica en los valores SHORT especificados. La operación se realiza con la semántica de ordenación de memoria.
InterlockedOr16Release Realiza una operación OR atómica en los valores SHORT especificados. La operación se realiza con la semántica de ordenación de memoria de liberación.
InterlockedOr16NoFence Realiza una operación OR atómica en los valores SHORT especificados. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedOr64 Realiza una operación OR atómica en los valores LONGLONG especificados.
InterlockedOr64Acquire Realiza una operación OR atómica en los valores LONGLONG especificados. La operación se realiza con la semántica de ordenación de memoria.
InterlockedOr64Release Realiza una operación OR atómica en los valores LONGLONG especificados. La operación se realiza con la semántica de ordenación de memoria de liberación.
InterlockedOr64NoFence Realiza una operación OR atómica en los valores LONGLONG especificados. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedXor Realiza una operación XOR atómica en los valores LONG especificados.
InterlockedXorAcquire Realiza una operación XOR atómica en los valores LONG especificados. La operación se realiza con la semántica de ordenación de memoria.
InterlockedXorRelease Realiza una operación XOR atómica en los valores LONG especificados. La operación se realiza con la semántica de ordenación de memoria de liberación.
InterlockedXorNoFence Realiza una operación XOR atómica en los valores LONG especificados. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedXor8 Realiza una operación XOR atómica en los valores char especificados.
InterlockedXor8Acquire Realiza una operación XOR atómica en los valores char especificados. La operación se realiza con la semántica de ordenación de memoria.
InterlockedXor8Release Realiza una operación XOR atómica en los valores char especificados. La operación se realiza con la semántica de ordenación de memoria de liberación.
InterlockedXor8NoFence Realiza una operación XOR atómica en los valores char especificados. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedXor16 Realiza una operación XOR atómica en los valores SHORT especificados.
InterlockedXor16Acquire Realiza una operación XOR atómica en los valores SHORT especificados. La operación se realiza con la semántica de ordenación de memoria.
InterlockedXor16Release Realiza una operación XOR atómica en los valores SHORT especificados. La operación se realiza con la semántica de ordenación de memoria de liberación.
InterlockedXor16NoFence Realiza una operación XOR atómica en los valores SHORT especificados. La operación se realiza de forma atómica, pero sin usar barreras de memoria
InterlockedXor64 Realiza una operación XOR atómica en los valores LONGLONG especificados.
InterlockedXor64Acquire Realiza una operación XOR atómica en los valores LONGLONG especificados. La operación se realiza con la semántica de ordenación de memoria.
InterlockedXor64Release Realiza una operación XOR atómica en los valores LONGLONG especificados. La operación se realiza con la semántica de ordenación de memoria de liberación.
InterlockedXor64NoFence Realiza una operación XOR atómica en los valores LONGLONG especificados. La operación se realiza de forma atómica, pero sin usar barreras de memoria

 

Funciones de exclusión mutua

Función de exclusión mutua Descripción
CreateMutex Crea o abre un objeto de exclusión mutua con nombre o sin nombre.
CreateMutexEx Crea o abre un objeto de exclusión mutua con nombre o sin nombre y devuelve un identificador al objeto .
OpenMutex Abre un objeto de exclusión mutua con nombre existente.
ReleaseMutex Libera la propiedad del objeto de exclusión mutua especificado.

 

Funciones de espacio de nombres privado

Función de espacio de nombres privado Descripción
AddSIDToBoundaryDescriptor Agrega un nuevo identificador de seguridad (SID) al descriptor de límite especificado.
AddIntegrityLabelToBoundaryDescriptor Agrega un nuevo identificador de seguridad (SID) necesario al descriptor de límite especificado.
ClosePrivateNamespace Cierra un identificador de espacio de nombres abierto.
CreateBoundaryDescriptor Crea un descriptor de límite.
CreatePrivateNamespace Crea un espacio de nombres privado.
DeleteBoundaryDescriptor Elimina el descriptor de límite especificado.
OpenPrivateNamespace Abre un espacio de nombres privado.

 

Funciones de semáforo

Función Semaphore Descripción
CreateSemaphore Crea o abre un objeto de semáforo con nombre o sin nombre.
CreateSemaphoreEx Crea o abre un objeto de semáforo con nombre o sin nombre y devuelve un identificador al objeto .
OpenSemaphore Abre un objeto de semáforo con nombre existente.
ReleaseSemaphore Aumenta el recuento del objeto de semáforo especificado por una cantidad especificada.

 

Funciones de lista vinculadas singly

Función de lista vinculada singly Descripción
InitializeSListHead Inicializa el encabezado de una lista vinculada de forma singly.
InterlockedFlushSList Vacía toda la lista de elementos de una lista vinculada de forma singly.
InterlockedPopEntrySList Quita un elemento de la parte delantera de una lista vinculada de forma singly.
InterlockedPushEntrySList Inserta un elemento en la parte delantera de una lista vinculada de forma singly.
InterlockedPushListSList Inserta una lista vinculada de forma singly en la parte delantera de otra lista vinculada de forma singly.
InterlockedPushListSListEx Inserta una lista vinculada de forma singly en la parte delantera de otra lista vinculada de forma singly. El acceso a las listas se sincroniza en un sistema multiprocesador. Esta versión del método no usa la convención de llamada de __fastcall
QueryDepthSList Recupera el número de entradas de la lista vinculada de forma singly especificada.
RtlFirstEntrySList Recupera la primera entrada de una lista vinculada singly.
RtlInitializeSListHead Inicializa el encabezado de una lista vinculada de forma singly. Las aplicaciones deben llamar a InitializeSListHead en su lugar.
RtlInterlockedFlushSList Vacía toda la lista de elementos de una lista vinculada de forma singly. Las aplicaciones deben llamar a InterlockedFlushSList en su lugar.
RtlInterlockedPopEntrySList Quita un elemento de la parte delantera de una lista vinculada de forma singly. Las aplicaciones deben llamar a InterlockedPopEntrySList en su lugar.
RtlInterlockedPushEntrySList Inserta un elemento en la parte delantera de una lista vinculada de forma singly. Las aplicaciones deben llamar a InterlockedPushEntrySList en su lugar.
RtlQueryDepthSList Recupera el número de entradas de la lista vinculada de forma singly especificada. Las aplicaciones deben llamar a QueryDepthSList en su lugar.

 

Funciones de barrera de sincronización

Función de barrera de sincronización Descripción
DeleteSynchronizationBarrier Elimina una barrera de sincronización.
EnterSynchronizationBarrier Entra en una barrera de sincronización y espera a que el número adecuado de subprocesos se reúna en la barrera.
InitializeSynchronizationBarrier Inicializa una nueva barrera de sincronización.

 

Funciones del temporizador de cola

Función timer-queue timer Descripción
ChangeTimerQueueTimer Novedades un temporizador de cola de temporizador.
CreateTimerQueue Crea una cola para temporizadores.
CreateTimerQueueTimer Crea un temporizador de cola de temporizador.
DeleteTimerQueue Elimina una cola de temporizador.
DeleteTimerQueueEx Elimina una cola de temporizador.
DeleteTimerQueueTimer Cancela un temporizador de cola de temporizador.

 

Funciones wait

Función Wait Descripción
MsgWaitForMultipleObjects Espera hasta que uno o todos los objetos especificados estén en estado señalado o el intervalo de tiempo de espera transcurrido. Los objetos pueden incluir objetos de evento de entrada.
MsgWaitForMultipleObjectsEx Espera hasta que uno o todos los objetos especificados estén en estado señalado, se pone en cola una rutina de finalización de E/S o una llamada de procedimiento asincrónico (APC) al subproceso o el intervalo de tiempo de espera transcurrido. La matriz de objetos puede incluir objetos de evento de entrada.
RegisterWaitForSingleObject Dirige un subproceso de espera en el grupo de subprocesos para que espere en el objeto .
SignalObjectAndWait Señala un objeto y espera a otro objeto como una sola operación.
Anular el registroWait Cancela una operación de espera registrada.
Anular el registroWaitEx Cancela una operación de espera registrada.
WaitForMultipleObjects Espera hasta que uno o todos los objetos especificados estén en estado señalado o el intervalo de tiempo de espera transcurrido.
WaitForMultipleObjectsEx Espera hasta que uno o todos los objetos especificados estén en estado señalado, se pone en cola una rutina de finalización de E/S o una llamada de procedimiento asincrónico (APC) al subproceso o el intervalo de tiempo de espera transcurrido.
Waitforsingleobject Espera hasta que el objeto especificado se encuentra en el estado señalado o transcurre el intervalo de tiempo de espera.
WaitForSingleObjectEx Espera hasta que el objeto especificado se encuentra en el estado señalado, se pone en cola una rutina de finalización de E/S o una llamada de procedimiento asincrónica (APC) al subproceso o el intervalo de tiempo de espera transcurrido.
WaitOnAddress Espera a que cambie el valor en la dirección especificada.
WaitOrTimerCallback Función definida por la aplicación que actúa como la dirección inicial de una devolución de llamada del temporizador o una devolución de llamada de espera registrada.
WakeByAddressAll Activa todos los subprocesos a la espera de que cambie el valor de una dirección.
WakeByAddressSingle Activa un subproceso esperando que cambie el valor de una dirección.

 

Funciones de temporizador de espera

Función waitable-timer Descripción
CancelWaitableTimer Establece el temporizador de espera especificado en el estado inactivo.
CreateWaitableTimer Crea o abre un objeto de temporizador de espera.
CreateWaitableTimerEx Crea o abre un objeto de temporizador de espera y devuelve un identificador al objeto .
OpenWaitableTimer Abre un objeto de temporizador que se puede esperar existente.
SetWaitableTimer Activa el temporizador de espera especificado.
SetWaitableTimerEx Activa el temporizador de espera especificado y proporciona información de contexto para el temporizador. .
TimerAPCProc Rutina de finalización del temporizador definida por la aplicación que se usa con la función SetWaitableTimer .