Funzioni di sincronizzazione

Le funzioni seguenti vengono usate nella sincronizzazione.

Funzioni asincrone

Funzione asincrona Descrizione
APCProc Funzione di callback definita dall'applicazione usata con la funzione QueueUserAPC .
GetOverlappedResult Recupera i risultati di un'operazione sovrapposta.
GetOverlappedResultEx Recupera i risultati di un'operazione sovrapposta entro un intervallo di timeout specificato.
QueueUserAPC Aggiunge un oggetto APC (User-Mode Procedure Call) alla coda APC del thread specificato.

 

Funzioni di blocco di condizione e SRW

Variabile condizione e funzione di blocco SRW Descrizione
AcquireSRWLockExclusive Acquisisce un blocco di lettura/writer sottile (SRW) in modalità esclusiva.
AcquireSRWLockShared Acquisisce un blocco SRW (Slim Reader/Writer) in modalità condivisa.
InitializeConditionVariable Inizializza una variabile di condizione.
InizializzaSRWLock Inizializzare un blocco SRW (Slim Reader/Writer).
ReleaseSRWLockExclusive Rilascia un blocco di lettura/writer sottile (SRW) acquisito in modalità esclusiva.
ReleaseSRWLockShared Rilascia un blocco srW (Reader/Writer) sottile acquisito in modalità condivisa.
SleepConditionVariableCS Dorme nella variabile di condizione specificata e rilascia la sezione critica specificata come operazione atomica.
SleepConditionVariableSRW Dorme nella variabile di condizione specificata e rilascia il blocco specificato come operazione atomica.
TryAcquireSRWLockExclusive Tenta di acquisire un blocco SRW (Slim Reader/Writer) in modalità esclusiva. Se la chiamata ha esito positivo, il thread chiamante accetta la proprietà del blocco.
TryAcquireSRWLockShared Tenta di acquisire un blocco di lettura/writer (SRW) sottile in modalità condivisa. Se la chiamata ha esito positivo, il thread chiamante accetta la proprietà del blocco.
WakeAllConditionVariable Riattiva tutti i thread in attesa della variabile di condizione specificata.
WakeConditionVariable Riattivare un singolo thread in attesa della variabile di condizione specificata.

 

Funzioni di sezione critiche

Funzione di sezione critica Descrizione
DeleteCriticalSection Rilascia tutte le risorse usate da un oggetto sezione critica non generato.
EnterCriticalSection Attende la proprietà dell'oggetto sezione critica specificata.
InitializeCriticalSection Inizializza un oggetto sezione critica.
InitializeCriticalSectionAndSpinCount Inizializza un oggetto sezione critica e imposta il numero di spin per la sezione critica.
InitializeCriticalSectionEx Inizializza un oggetto sezione critica con un conteggio di spin e flag facoltativi.
LeaveCriticalSection Rilascia la proprietà dell'oggetto sezione critica specificata.
SetCriticalSectionSpinCount Imposta il numero di spin per la sezione critica specificata.
TryEnterCriticalSection Tenta di immettere una sezione critica senza bloccare.

 

Funzioni evento

Funzione evento Descrizione
CreateEvent Crea o apre un oggetto evento denominato o senza nome.
CreateEventEx Crea o apre un oggetto evento denominato o senza nome e restituisce un handle all'oggetto.
OpenEvent Apre un oggetto evento denominato esistente.
PulseEvent Imposta l'oggetto evento specificato sullo stato segnalato e quindi lo reimposta nello stato non assegnato dopo aver rilasciato il numero appropriato di thread in attesa.
ResetEvent Imposta l'oggetto evento specificato sullo stato non assegnato.
SetEvent Imposta l'oggetto evento specificato sullo stato segnalato.

 

Funzioni di inizializzazione una sola volta

Funzione di inizializzazione una volta Descrizione
InitOnceBeginInitialize Inizia l'inizializzazione una sola volta.
InitOnceComplete Completa l'inizializzazione una volta.
InitOnceExecuteOnce Esegue la funzione specificata una volta. Nessun altro thread che specifica la stessa struttura di inizializzazione una volta può eseguire questa funzione mentre viene eseguita dal thread corrente.
InitOnceInitialize Inizializza una struttura di inizializzazione una sola volta.

 

Funzioni interlocked

Funzione interlocked Descrizione
InterlockedAdd Esegue un'operazione di aggiunta atomica sui valori LONG specificati.
InterlockedAddAcquire Esegue un'operazione di aggiunta atomica sui valori LONG specificati. L'operazione viene eseguita con acquisire la semantica di ordinamento della memoria.
InterlockedAddRelease Esegue un'operazione di aggiunta atomica sui valori LONG specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedAddNoFence Esegue un'operazione di aggiunta atomica sui valori LONG specificati. L'operazione viene eseguita atomicamente, ma senza usare barriere di memoria
InterlockedAdd64 Esegue un'operazione di aggiunta atomica sui valori LONGLONG specificati.
InterlockedAddAcquire64 Esegue un'operazione di aggiunta atomica sui valori LONGLONG specificati. L'operazione viene eseguita con acquisire la semantica di ordinamento della memoria.
InterlockedAddRelease64 Esegue un'operazione di aggiunta atomica sui valori LONGLONG specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedAddNoFence64 Esegue un'operazione di aggiunta atomica sui valori LONGLONG specificati. L'operazione viene eseguita atomicamente, ma senza usare barriere di memoria
InterlockedAnd Esegue un'operazione ATOMIC AND sui valori LONG specificati.
InterlockedAndAcquire Esegue un'operazione ATOMIC AND sui valori LONG specificati. L'operazione viene eseguita con acquisire la semantica di ordinamento della memoria.
InterlockedAndRelease Esegue un'operazione ATOMIC AND sui valori LONG specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedAndNoFence Esegue un'operazione ATOMIC AND sui valori LONG specificati. L'operazione viene eseguita atomicamente, ma senza usare barriere di memoria
InterlockedAnd8 Esegue un'operazione ATOMIC AND sui valori char specificati.
InterlockedAnd8Acquire Esegue un'operazione ATOMIC AND sui valori char specificati. L'operazione viene eseguita con acquisire la semantica di ordinamento della memoria.
InterlockedAnd8Release Esegue un'operazione ATOMIC AND sui valori char specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedAnd8NoFence Esegue un'operazione ATOMIC AND sui valori char specificati. L'operazione viene eseguita atomicamente, ma senza usare barriere di memoria
InterlockedAnd16 Esegue un'operazione ATOMIC AND sui valori SHORT specificati.
InterlockedAnd16Acquire Esegue un'operazione ATOMIC AND sui valori SHORT specificati. L'operazione viene eseguita con acquisire la semantica di ordinamento della memoria.
InterlockedAnd16Release Esegue un'operazione ATOMIC AND sui valori SHORT specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedAnd16NoFence Esegue un'operazione ATOMIC AND sui valori SHORT specificati. L'operazione viene eseguita atomicamente, ma senza usare barriere di memoria
InterlockedAnd64 Esegue un'operazione ATOMIC AND sui valori LONGLONG specificati.
InterlockedAnd64Acquire Esegue un'operazione ATOMIC AND sui valori LONGLONG specificati. L'operazione viene eseguita con acquisire la semantica di ordinamento della memoria.
InterlockedAnd64Release Esegue un'operazione ATOMIC AND sui valori LONGLONG specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedAnd64NoFence Esegue un'operazione ATOMIC AND sui valori LONGLONG specificati. L'operazione viene eseguita atomicamente, ma senza usare barriere di memoria
InterlockedBitTestAndComplement Verifica il bit specificato del valore LONG specificato e lo integra.
InterlockedBitTestAndComplement64 Verifica il bit specificato del valore LONG64 specificato e lo integra. L'operazione è atomica
InterlockedBitTestAndResetAcquire Verifica il bit specificato del valore LONG specificato e lo imposta su 0. L'operazione è atomica e viene eseguita con la semantica di acquisizione dell'ordinamento della memoria
InterlockedBitTestAndResetRelease Verifica il bit specificato del valore LONG specificato e lo imposta su 0. L'operazione è atomica e viene eseguita usando la semantica della versione della memoria
InterlockedBitTestAndSetAcquire Verifica il bit specificato del valore LONG specificato e lo imposta su 1. L'operazione è atomica e viene eseguita con la semantica di acquisizione dell'ordinamento della memoria
InterlockedBitTestAndSetRelease Verifica il bit specificato del valore LONG specificato e lo imposta su 1. L'operazione è atomica e viene eseguita con la semantica di ordinamento della memoria di rilascio
InterlockedBitTestAndReset Verifica il bit specificato del valore LONG specificato e lo imposta su 0.
InterlockedBitTestAndReset64 Verifica il bit specificato del valore LONG64 specificato e lo imposta su 0.
InterlockedBitTestAndSet Verifica il bit specificato del valore LONG specificato e lo imposta su 1.
InterlockedBitTestAndSet64 Verifica il bit specificato del valore LONG64 specificato e lo imposta su 1.
InterlockedCompare64Exchange128 Esegue un'operazione atomica di confronto e scambio sui valori specificati. La funzione confronta i valori a 64 bit specificati e scambia con il valore a 128 bit specificato in base al risultato del confronto.
InterlockedCompare64ExchangeAcquire128 Esegue un'operazione atomica di confronto e scambio sui valori specificati. La funzione confronta i valori a 64 bit specificati e scambia con il valore a 128 bit specificato in base al risultato del confronto. L'operazione viene eseguita con la semantica di acquisizione dell'ordinamento della memoria.
InterlockedCompare64ExchangeRelease128 Esegue un'operazione atomica di confronto e scambio sui valori specificati. La funzione confronta i valori a 64 bit specificati e scambia con il valore a 128 bit specificato in base al risultato del confronto. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedCompareExchange Esegue un'operazione atomica di confronto e scambio sui valori specificati. La funzione confronta due valori a 32 bit specificati e scambia con un altro valore a 32 bit in base al risultato del confronto.
InterlockedCompareExchangeAcquire Esegue un'operazione atomica di confronto e scambio sui valori specificati. La funzione confronta due valori a 32 bit specificati e scambia con un altro valore a 32 bit in base al risultato del confronto. L'operazione viene eseguita con la semantica di acquisizione dell'ordinamento della memoria.
InterlockedCompareExchangeRelease Esegue un'operazione atomica di confronto e scambio sui valori specificati. La funzione confronta due valori a 32 bit specificati e scambia con un altro valore a 32 bit in base al risultato del confronto. Lo scambio viene eseguito con la semantica di ordinamento della memoria di rilascio.
InterlockedCompareExchangeNoFence Esegue un'operazione atomica di confronto e scambio sui valori specificati. La funzione confronta due valori a 32 bit specificati e scambia con un altro valore a 32 bit in base al risultato del confronto. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria
InterlockedCompareExchange64 Esegue un'operazione atomica di confronto e scambio sui valori specificati. La funzione confronta due valori a 64 bit specificati e scambia con un altro valore a 64 bit in base al risultato del confronto.
InterlockedCompareExchangeAcquire64 Esegue un'operazione atomica di confronto e scambio sui valori specificati. La funzione confronta due valori a 64 bit specificati e scambia con un altro valore a 64 bit in base al risultato del confronto. Lo scambio viene eseguito con la semantica di ordinamento della memoria di acquisizione.
InterlockedCompareExchangeRelease64 Esegue un'operazione atomica di confronto e scambio sui valori specificati. La funzione confronta due valori a 64 bit specificati e scambia con un altro valore a 64 bit in base al risultato del confronto. Lo scambio viene eseguito con la semantica di ordinamento della memoria di rilascio.
InterlockedCompareExchangeNoFence64 Esegue un'operazione atomica di confronto e scambio sui valori specificati. La funzione confronta due valori a 64 bit specificati e scambia con un altro valore a 64 bit in base al risultato del confronto. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria
InterlockedCompareExchange16 Esegue un'operazione atomica di confronto e scambio sui valori specificati. La funzione confronta due valori a 16 bit specificati e scambia con un altro valore a 16 bit in base al risultato del confronto
InterlockedCompareExchange16Acquire Esegue un'operazione atomica di confronto e scambio sui valori specificati. La funzione confronta due valori a 16 bit specificati e scambia con un altro valore a 16 bit in base al risultato del confronto. L'operazione viene eseguita con la semantica di acquisizione dell'ordinamento della memoria
InterlockedCompareExchange16Release Esegue un'operazione atomica di confronto e scambio sui valori specificati. La funzione confronta due valori a 16 bit specificati e scambia con un altro valore a 16 bit in base al risultato del confronto. Lo scambio viene eseguito con la semantica di ordinamento della memoria di rilascio
InterlockedCompareExchange16NoFence Esegue un'operazione atomica di confronto e scambio sui valori specificati. La funzione confronta due valori a 16 bit specificati e scambia con un altro valore a 16 bit in base al risultato del confronto. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria
InterlockedCompareExchange128 Esegue un'operazione atomica di confronto e scambio sui valori specificati. La funzione confronta due valori a 128 bit specificati e scambia con un altro valore a 128 bit in base al risultato del confronto
InterlockedCompareExchangePointer Esegue un'operazione atomica di confronto e scambio sui valori del puntatore specificati. La funzione confronta due valori del puntatore specificati e scambia con un altro valore del puntatore in base al risultato del confronto.
InterlockedCompareExchangePointerAcquire Esegue un'operazione atomica di confronto e scambio sui valori del puntatore specificati. La funzione confronta due valori del puntatore specificati e scambia con un altro valore del puntatore in base al risultato del confronto. L'operazione viene eseguita con la semantica di acquisizione dell'ordinamento della memoria.
InterlockedCompareExchangePointerRelease Esegue un'operazione atomica di confronto e scambio sui valori del puntatore specificati. La funzione confronta due valori del puntatore specificati e scambia con un altro valore del puntatore in base al risultato del confronto. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedCompareExchangePointerNoFence Esegue un'operazione atomica di confronto e scambio sui valori specificati. La funzione confronta due valori del puntatore specificati e scambia con un altro valore del puntatore in base al risultato del confronto. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria
InterlockedDecrement Decrementa (diminuisce di uno) il valore della variabile a 32 bit specificata come operazione atomica.
InterlockedDecrementAcquire Decrementa (diminuisce di uno) il valore della variabile a 32 bit specificata come operazione atomica. L'operazione viene eseguita con la semantica di acquisizione dell'ordinamento della memoria.
InterlockedDecrementRelease Decrementa (diminuisce di uno) il valore della variabile a 32 bit specificata come operazione atomica. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedDecrementNoFence Decrementa (diminuisce di uno) il valore della variabile a 32 bit specificata come operazione atomica. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria
InterlockedDecrement16 Decrementi (diminuisce di uno) il valore della variabile a 16 bit specificata come operazione atomica
InterlockedDecrement16Acquire Decrementa (diminuisce di uno) il valore della variabile a 16 bit specificata come operazione atomica. L'operazione viene eseguita con la semantica di acquisizione dell'ordinamento della memoria
InterlockedDecrement16Release Decrementa (diminuisce di uno) il valore della variabile a 16 bit specificata come operazione atomica. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio
InterlockedDecrement16NoFence Decrementa (diminuisce di uno) il valore della variabile a 16 bit specificata come operazione atomica. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria
InterlockedDecrement64 Decrementa (diminuisce di uno) il valore della variabile a 64 bit specificata come operazione atomica.
InterlockedDecrementAcquire64 Decrementa (diminuisce di uno) il valore della variabile a 64 bit specificata come operazione atomica. L'operazione viene eseguita con la semantica di acquisizione dell'ordinamento della memoria.
InterlockedDecrementRelease64 Decrementi (diminuisce di uno) il valore della variabile a 64 bit specificata come operazione atomica. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedDecrementNoFence64 Decrementi (diminuisce di uno) il valore della variabile a 64 bit specificata come operazione atomica. L'operazione viene eseguita atomicamente, ma senza usare barriere di memoria
InterlockedExchange Imposta una variabile a 32 bit sul valore specificato come operazione atomica.
InterlockedExchangeAcquire Imposta una variabile a 32 bit sul valore specificato come operazione atomica. L'operazione viene eseguita con acquisire la semantica di ordinamento della memoria.
InterlockedExchangeNoFence Imposta una variabile a 64 bit sul valore specificato come operazione atomica. L'operazione viene eseguita atomicamente, ma senza usare barriere di memoria
InterlockedExchange8 Imposta una variabile a 8 bit sul valore specificato come operazione atomica
InterlockedExchange16 Imposta una variabile a 16 bit sul valore specificato come operazione atomica.
InterlockedExchange16Acquire Imposta una variabile a 16 bit sul valore specificato come operazione atomica. L'operazione viene eseguita usando la semantica di acquisizione dell'ordinamento della memoria
InterlockedExchange16NoFence Imposta una variabile a 16 bit sul valore specificato come operazione atomica. L'operazione viene eseguita atomicamente, ma senza usare barriere di memoria
InterlockedExchange64 Imposta una variabile a 64 bit sul valore specificato come operazione atomica.
InterlockedExchangeAcquire64 Imposta una variabile a 32 bit sul valore specificato come operazione atomica. L'operazione viene eseguita con acquisire la semantica di ordinamento della memoria.
InterlockedExchangeNoFence64 Imposta una variabile a 64 bit sul valore specificato come operazione atomica. L'operazione viene eseguita atomicamente, ma senza usare barriere di memoria
InterlockedExchangePointer Scambia in modo atomico una coppia di valori del puntatore.
InterlockedExchangePointerAcquire Scambia in modo atomico una coppia di valori del puntatore. L'operazione viene eseguita con acquisire la semantica di ordinamento della memoria.
InterlockedExchangePointerNoFence Scambia in modo atomico una coppia di indirizzi. L'operazione viene eseguita atomicamente, ma senza usare barriere di memoria
InterlockedExchangeSubtract Esegue una sottrazione atomica di due valori.
InterlockedExchangeAdd Esegue un'aggiunta atomica di due valori a 32 bit.
InterlockedExchangeAddAcquire Esegue un'aggiunta atomica di due valori a 32 bit. L'operazione viene eseguita con acquisire la semantica di ordinamento della memoria.
InterlockedExchangeAddRelease Esegue un'aggiunta atomica di due valori a 32 bit. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedExchangeAddNoFence Esegue un'aggiunta atomica di due valori a 32 bit. L'operazione viene eseguita atomicamente, ma senza usare barriere di memoria
InterlockedExchangeAdd64 Esegue un'aggiunta atomica di due valori a 64 bit.
InterlockedExchangeAddAcquire64 Esegue un'aggiunta atomica di due valori a 64 bit. L'operazione viene eseguita con acquisire la semantica di ordinamento della memoria.
InterlockedExchangeAddRelease64 Esegue un'aggiunta atomica di due valori a 64 bit. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedExchangeAddNoFence64 Esegue un'aggiunta atomica di due valori a 64 bit. L'operazione viene eseguita atomicamente, ma senza usare barriere di memoria
InterlockedIncrement Incrementi (aumenta di uno) il valore della variabile a 32 bit specificata come operazione atomica.
InterlockedIncrementAcquire Incrementi (aumenta di uno) il valore della variabile a 32 bit specificata come operazione atomica. L'operazione viene eseguita usando la semantica di acquisizione dell'ordinamento della memoria.
InterlockedIncrementRelease Incrementi (aumenta di uno) il valore della variabile a 32 bit specificata come operazione atomica. L'operazione viene eseguita usando la semantica di ordinamento della memoria di rilascio.
InterlockedIncrementNoFence Incrementi (aumenta di uno) il valore della variabile a 32 bit specificata come operazione atomica. L'operazione viene eseguita atomicamente, ma senza usare barriere di memoria
InterlockedIncrement16 Incrementi (aumenta di uno) il valore della variabile a 16 bit specificata come operazione atomica
InterlockedIncrement16Acquire Incrementi (aumenta di uno) il valore della variabile a 16 bit specificata come operazione atomica. L'operazione viene eseguita usando la semantica di acquisizione dell'ordinamento della memoria
InterlockedIncrement16Release Incrementi (aumenta di uno) il valore della variabile a 16 bit specificata come operazione atomica. L'operazione viene eseguita usando la semantica di ordinamento della memoria di rilascio
InterlockedIncrement16NoFence Incrementi (aumenta di uno) il valore della variabile a 16 bit specificata come operazione atomica. L'operazione viene eseguita atomicamente, ma senza usare barriere di memoria
InterlockedIncrement64 Incrementi (aumenta di uno) il valore della variabile a 64 bit specificata come operazione atomica.
InterlockedIncrementAcquire64 Incrementi (aumenta di uno) il valore della variabile a 64 bit specificata come operazione atomica. L'operazione viene eseguita usando la semantica di acquisizione dell'ordinamento della memoria.
InterlockedIncrementRelease64 Incrementi (aumenta di uno) il valore della variabile a 64 bit specificata come operazione atomica. L'operazione viene eseguita usando la semantica di ordinamento della memoria di rilascio.
InterlockedIncrementNoFence64 Incrementi (aumenta di uno) il valore della variabile a 64 bit specificata come operazione atomica. L'operazione viene eseguita atomicamente, ma senza usare barriere di memoria
InterlockedOr Esegue un'operazione OR atomica sui valori LONG specificati.
InterlockedOrAcquire Esegue un'operazione OR atomica sui valori LONG specificati. L'operazione viene eseguita con la semantica di acquisizione dell'ordinamento della memoria.
InterlockedOrRelease Esegue un'operazione OR atomica sui valori LONG specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedOrNoFence Esegue un'operazione OR atomica sui valori LONG specificati. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria
InterlockedOr8 Esegue un'operazione OR atomica sui valori char specificati.
InterlockedOr8Acquire Esegue un'operazione OR atomica sui valori char specificati. L'operazione viene eseguita con la semantica di acquisizione dell'ordinamento della memoria.
InterlockedOr8Release Esegue un'operazione OR atomica sui valori char specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedOr8NoFence Esegue un'operazione OR atomica sui valori char specificati. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria
InterlockedOr16 Esegue un'operazione OR atomica sui valori SHORT specificati.
InterlockedOr16Acquire Esegue un'operazione OR atomica sui valori SHORT specificati. L'operazione viene eseguita con la semantica di acquisizione dell'ordinamento della memoria.
InterlockedOr16Release Esegue un'operazione OR atomica sui valori SHORT specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedOr16NoFence Esegue un'operazione OR atomica sui valori SHORT specificati. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria
InterlockedOr64 Esegue un'operazione OR atomica sui valori DI LONGLONG specificati.
InterlockedOr64Acquire Esegue un'operazione OR atomica sui valori DI LONGLONG specificati. L'operazione viene eseguita con la semantica di acquisizione dell'ordinamento della memoria.
InterlockedOr64Release Esegue un'operazione OR atomica sui valori DI LONGLONG specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedOr64NoFence Esegue un'operazione OR atomica sui valori DI LONGLONG specificati. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria
InterlockedXor Esegue un'operazione XOR atomica sui valori LONG specificati.
InterlockedXorAcquire Esegue un'operazione XOR atomica sui valori LONG specificati. L'operazione viene eseguita con la semantica di acquisizione dell'ordinamento della memoria.
InterlockedXorRelease Esegue un'operazione XOR atomica sui valori LONG specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedXorNoFence Esegue un'operazione XOR atomica sui valori LONG specificati. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria
InterlockedXor8 Esegue un'operazione XOR atomica sui valori char specificati.
InterlockedXor8Acquire Esegue un'operazione XOR atomica sui valori char specificati. L'operazione viene eseguita con la semantica di acquisizione dell'ordinamento della memoria.
InterlockedXor8Release Esegue un'operazione XOR atomica sui valori char specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedXor8NoFence Esegue un'operazione XOR atomica sui valori char specificati. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria
InterlockedXor16 Esegue un'operazione XOR atomica sui valori SHORT specificati.
InterlockedXor16Acquire Esegue un'operazione XOR atomica sui valori SHORT specificati. L'operazione viene eseguita con la semantica di acquisizione dell'ordinamento della memoria.
InterlockedXor16Release Esegue un'operazione XOR atomica sui valori SHORT specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedXor16NoFence Esegue un'operazione XOR atomica sui valori SHORT specificati. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria
InterlockedXor64 Esegue un'operazione XOR atomica sui valori DI LONGLONG specificati.
InterlockedXor64Acquire Esegue un'operazione XOR atomica sui valori DI LONGLONG specificati. L'operazione viene eseguita con la semantica di acquisizione dell'ordinamento della memoria.
InterlockedXor64Release Esegue un'operazione XOR atomica sui valori DI LONGLONG specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedXor64NoFence Esegue un'operazione XOR atomica sui valori DI LONGLONG specificati. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria

 

Funzioni Mutex

Funzione Mutex Descrizione
CreateMutex Crea o apre un oggetto mutex denominato o senza nome.
CreateMutexEx Crea o apre un oggetto mutex denominato o senza nome e restituisce un handle all'oggetto .
OpenMutex Apre un oggetto mutex denominato esistente.
Releasemutex Rilascia la proprietà dell'oggetto mutex specificato.

 

Funzioni dello spazio dei nomi privato

Funzione dello spazio dei nomi privato Descrizione
AddSIDToBoundaryDescriptor Aggiunge un nuovo ID di sicurezza (SID) al descrittore di limite specificato.
AddIntegrityLabelToBoundaryDescriptor Aggiunge un nuovo IDENTIFICATORe di sicurezza (SID) necessario al descrittore di limite specificato.
ClosePrivateNamespace Chiude un handle dello spazio dei nomi aperto.
CreateBoundaryDescriptor Crea un descrittore di limiti.
CreatePrivateNamespace Crea uno spazio dei nomi privato.
DeleteBoundaryDescriptor Elimina il descrittore di limite specificato.
OpenPrivateNamespace Apre uno spazio dei nomi privato.

 

Funzioni semaforo

Funzione Semaforo Descrizione
CreateSemaphore Crea o apre un oggetto semaforo denominato o senza nome.
CreateSemaphoreEx Crea o apre un oggetto semaforo denominato o senza nome e restituisce un handle all'oggetto .
OpenSemaphore Apre un oggetto semaforo denominato esistente.
ReleaseSemaphore Aumenta il conteggio dell'oggetto semaforo specificato in base a una quantità specificata.

 

Funzioni elenco collegato a Singly

Funzione elenco collegato singly Descrizione
InitializeSListHead Inizializza l'intestazione di un elenco collegato singly.
InterlockedFlushSList Scarica l'intero elenco di elementi in un elenco collegato singly.
InterlockedPopEntrySList Rimuove un elemento dalla parte anteriore di un elenco collegato singly.
InterlockedPushEntrySList Inserisce un elemento nella parte anteriore di un elenco collegato singly.
InterlockedPushListSList Inserisce un elenco collegato singly all'inizio di un altro elenco collegato singly.
InterlockedPushListSListEx Inserisce un elenco collegato singly all'inizio di un altro elenco collegato singly. L'accesso agli elenchi viene sincronizzato in un sistema multiprocessore. Questa versione del metodo non usa la convenzione di chiamata __fastcall
QueryDepthSList Recupera il numero di voci nell'elenco collegato singly specificato.
RtlFirstEntrySList Recupera la prima voce in un elenco collegato singly.
RtlInitializeSListHead Inizializza l'intestazione di un elenco collegato singly. Le applicazioni devono invece chiamare InitializeSListHead .
RtlInterlockedFlushSList Scarica l'intero elenco di elementi in un elenco collegato singly. Le applicazioni devono chiamare invece InterlockedFlushSList .
RtlInterlockedPopEntrySList Rimuove un elemento dalla parte anteriore di un elenco collegato singly. Le applicazioni devono invece chiamare InterlockedPopEntrySList .
RtlInterlockedPushEntrySList Inserisce un elemento nella parte anteriore di un elenco collegato singly. Le applicazioni devono chiamare invece InterlockedPushEntrySList .
RtlQueryDepthSList Recupera il numero di voci nell'elenco collegato singly specificato. Le applicazioni devono invece chiamare QueryDepthSList .

 

Funzioni di barriera di sincronizzazione

Funzione barriera di sincronizzazione Descrizione
DeleteSynchronizationBarrier Elimina una barriera di sincronizzazione.
EnterSynchronizationBarrier Entra in una barriera di sincronizzazione e attende il numero appropriato di thread per il rendezvous alla barriera.
InitializeSynchronizationBarrier Inizializza una nuova barriera di sincronizzazione.

 

Funzioni timer della coda timer

Funzione timer della coda timer Descrizione
ChangeTimerQueueTimer Aggiornamenti un timer della coda timer.
CreateTimerQueue Crea una coda per i timer.
CreateTimerQueueTimer Crea un timer della coda timer.
DeleteTimerQueue Elimina una coda timer.
DeleteTimerQueueEx Elimina una coda timer.
DeleteTimerQueueTimer Annulla un timer della coda timer.

 

Funzioni di attesa

Funzione Wait Descrizione
MsgWaitForMultipleObjects Attende che uno o tutti gli oggetti specificati si trovino nello stato segnalato o che sia trascorso l'intervallo di timeout. Gli oggetti possono includere oggetti evento di input.
MsgWaitForMultipleObjectsEx Attende che uno o tutti gli oggetti specificati si trovino nello stato segnalato, che una routine di completamento I/O o una chiamata asincrona di routine (APC) venga accodata al thread o che l'intervallo di timeout sia trascorso. La matrice di oggetti può includere oggetti evento di input.
Registerwaitforsingleobject Indirizza un thread di attesa nel pool di thread per attendere l'oggetto.
SignalObjectAndWait Segnala un oggetto e attende su un altro oggetto come singola operazione.
Annulla registrazioneWait Annulla un'operazione di attesa registrata.
UnregisterWaitEx Annulla un'operazione di attesa registrata.
Waitformultipleobjects Attende fino a quando uno o tutti gli oggetti specificati si trovano nello stato segnalato o l'intervallo di timeout trascorso.
WaitForMultipleObjectsEx Attende fino a quando uno o tutti gli oggetti specificati si trovano nello stato segnalato, una routine di completamento I/O o una chiamata di routine asincrona (APC) viene accodata al thread o l'intervallo di timeout trascorso.
WaitForSingleObject Attende fino a quando l'oggetto specificato non si trova nello stato segnalato o l'intervallo di timeout trascorso.
WaitForSingleObjectEx Attende fino a quando l'oggetto specificato non si trova nello stato segnalato, una routine di completamento I/O o una chiamata di routine asincrona (APC) viene accodata al thread o l'intervallo di timeout trascorso.
WaitOnAddress Attende che il valore all'indirizzo specificato venga modificato.
Waitortimercallback Funzione definita dall'applicazione che funge da indirizzo iniziale per un callback timer o un callback di attesa registrato.
WakeByAddressAll Riattiva tutti i thread in attesa del valore di un indirizzo da modificare.
WakeByAddressSingle Riattiva un thread in attesa del valore di un indirizzo da modificare.

 

Funzioni waitable-timer

Funzione waitable-timer Descrizione
CancelWaitableTimer Imposta il timer waitable specificato sullo stato inattivo.
CreateWaitableTimer Crea o apre un oggetto timer attendebile.
CreateWaitableTimerEx Crea o apre un oggetto timer in attesa e restituisce un handle all'oggetto.
OpenWaitableTimer Apre un oggetto timer esistente denominato waitable.
SetWaitableTimer Attiva il timer waitable specificato.
SetWaitableTimerEx Attiva il timer attendebile specificato e fornisce informazioni di contesto per il timer. .
TimerAPCProc Routine di completamento timer definita dall'applicazione usata con la funzione SetWaitableTimer .