Funciones de sincronización
Las siguientes funciones se usan en la sincronización.
- Funciones asincrónicas
- Variables de condición y funciones de bloqueo SRW
- Funciones de sección críticas
- Funciones de eventos
- Funciones de inicialización única
- Funciones interbloqueadas
- Funciones de exclusión mutua
- Funciones de espacio de nombres privado
- Funciones de semáforo
- Funciones de lista vinculadas singly
- Funciones de barrera de sincronización
- Funciones del temporizador de cola
- Funciones wait
- Funciones de temporizador de espera
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 . |