Condividi tramite


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 funzioneQueueUserAPC.
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 Asynchronous Procedure Call) alla coda APC del thread specificato.

 

Variabili di condizione e funzioni di blocco SRW

Variabile condition e funzione di blocco SRW Descrizione
AcquireSRWLockExclusive Acquisisce un blocco di lettura/scrittura sottile (SRW) in modalità esclusiva.
AcquireSRWLockShared Acquisisce un blocco di lettura/scrittura sottile (SRW) in modalità condivisa.
InitializeConditionVariable Inizializza una variabile di condizione.
InitializeSRWLock Inizializzare un blocco di lettura/scrittura sottile (SRW).
ReleaseSRWLockExclusive Rilascia un blocco di lettura/scrittura sottile (SRW) acquisito in modalità esclusiva.
ReleaseSRWLockShared Rilascia un blocco SRW (Slim Reader/Writer) acquisito in modalità condivisa.
SleepConditionVariableCS Sospendo la variabile di condizione specificata e rilascia la sezione critica specificata come operazione atomica.
SleepConditionVariableSRW Sospendo la variabile di condizione specificata e rilascia il blocco specificato come operazione atomica.
TryAcquireSRWLockExclusive Tenta di acquisire un blocco di lettura/scrittura sottile (SRW) in modalità esclusiva. Se la chiamata ha esito positivo, il thread chiamante assume la proprietà del blocco.
TryAcquireSRWLockShared Tenta di acquisire un blocco SRW (Slim Reader/Writer) in modalità condivisa. Se la chiamata ha esito positivo, il thread chiamante assume la proprietà del blocco.
WakeAllConditionVariable Riattivare 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 specificato.
initializeCriticalSection Inizializza un oggetto sezione critica.
InitializeCriticalSectionAndSpinCount Inizializza un oggetto sezione critica e imposta il numero di rotazioni per la sezione critica.
initializeCriticalSectionEx Inizializza un oggetto sezione critica con un conteggio di rotazioni e flag facoltativi.
LeaveCriticalSection Rilascia la proprietà dell'oggetto sezione critica specificata.
SetCriticalSectionSpinCount Imposta il numero di rotazioni per la sezione critica specificata.
tryEnterCriticalSection Tenta di immettere una sezione critica senza bloccare.

 

Funzioni di evento

Funzione event 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 sullo stato non firmato dopo il rilascio del numero appropriato di thread in attesa.
ResetEvent Imposta l'oggetto evento specificato sullo stato non firmato.
SetEvent Imposta l'oggetto evento specificato sullo stato segnalato.

 

Funzioni di inizializzazione monouso

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

 

Funzioni interlocked

Funzione interlocked Descrizione
InterlockedAdd Esegue un'operazione di addizione atomica sui valori di LONG specificati.
InterlockedAddAcquire Esegue un'operazione di addizione atomica sui valori di LONG specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di acquisizione.
InterlockedAddRelease Esegue un'operazione di addizione atomica sui valori di LONG specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedAddNoFence Esegue un'operazione di addizione atomica sui valori di LONG specificati. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria
InterlockedAdd64 Esegue un'operazione di addizione atomica sui valori di LONGLONG specificati.
InterlockedAddAcquire64 Esegue un'operazione di addizione atomica sui valori di LONGLONG specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di acquisizione.
InterlockedAddRelease64 Esegue un'operazione di addizione atomica sui valori di LONGLONG specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedAddNoFence64 Esegue un'operazione di addizione atomica sui valori di LONGLONG specificati. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria
InterlockedAnd Esegue un'operazione AND atomica sui valori di LONG specificati.
InterlockedAndAcquire Esegue un'operazione AND atomica sui valori di LONG specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di acquisizione.
InterlockedAndRelease Esegue un'operazione AND atomica sui valori di LONG specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedAndNoFence Esegue un'operazione AND atomica sui valori di LONG specificati. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria
interlockedAnd8 Esegue un'operazione AND atomica sui valori char specificati.
InterlockedAnd8Acquire Esegue un'operazione AND atomica sui valori char specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di acquisizione.
InterlockedAnd8Release Esegue un'operazione AND atomica sui valori char specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedAnd8NoFence Esegue un'operazione AND atomica sui valori char specificati. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria
interlockedAnd16 Esegue un'operazione AND atomica sui valori SHORT specificati.
InterlockedAnd16Acquire Esegue un'operazione AND atomica sui valori SHORT specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di acquisizione.
InterlockedAnd16Release Esegue un'operazione AND atomica sui valori SHORT specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedAnd16NoFence Esegue un'operazione AND atomica sui valori SHORT specificati. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria
InterlockedAnd64 Esegue un'operazione AND atomica sui valori LONGLONG specificati.
InterlockedAnd64Acquire Esegue un'operazione AND atomica sui valori LONGLONG specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di acquisizione.
InterlockedAnd64Release Esegue un'operazione AND atomica sui valori LONGLONG specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedAnd64NoFence Esegue un'operazione AND atomica sui valori LONGLONG specificati. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria
interlockedBitTestAndComplement Verifica il bit specificato del valore di 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 di LONG specificato e lo imposta su 0. L'operazione è atomica e viene eseguita con la semantica di ordinamento della memoria di acquisizione
InterlockedBitTestAndResetRelease Verifica il bit specificato del valore di LONG specificato e lo imposta su 0. L'operazione è atomica e viene eseguita usando la semantica di rilascio della memoria
InterlockedBitTestAndSetAcquire Verifica il bit specificato del valore di LONG specificato e lo imposta su 1. L'operazione è atomica e viene eseguita con la semantica di ordinamento della memoria di acquisizione
InterlockedBitTestAndSetRelease Verifica il bit specificato del valore di 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 di LONG specificato e lo imposta su 0.
InterlockedBitTestAndReset64 Verifica il bit specificato dell'valore LONG64 specificato e lo imposta su 0.
InterlockedBitTestAndSet Verifica il bit specificato del valore di LONG specificato e lo imposta su 1.
InterlockedBitTestAndSet64 Verifica il bit specificato del valore di LONG64 specificato e lo imposta su 1.
InterlockedCompare64Exchange128 Esegue un'operazione atomica di confronto e scambio sui valori specificati. La funzione confronta i valori e gli scambi a 64 bit specificati 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 e gli scambi a 64 bit specificati 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 acquisizione.
InterlockedCompare64ExchangeRelease128 Esegue un'operazione atomica di confronto e scambio sui valori specificati. La funzione confronta i valori e gli scambi a 64 bit specificati 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 ordinamento della memoria di acquisizione.
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 rilasciata.
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 rilasciata.
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 ordinamento della memoria di acquisizione
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 e scambi a 128 bit specificati 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 di puntatore specificati e scambia con un altro valore 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 di puntatore specificati e scambia con un altro valore puntatore in base al risultato del confronto. L'operazione viene eseguita con la semantica di ordinamento della memoria di acquisizione.
InterlockedCompareExchangePointerRelease Esegue un'operazione atomica di confronto e scambio sui valori del puntatore specificati. La funzione confronta due valori di puntatore specificati e scambia con un altro valore 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 di puntatore specificati e scambia con un altro valore puntatore in base al risultato del confronto. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria
InterlockedDecrement Decrementi (diminuisce di uno) il valore della variabile a 32 bit specificata come operazione atomica.
InterlockedDecrementAcquire Decrementi (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 acquisizione.
InterlockedDecrementRelease Decrementi (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 Decrementi (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 Decrementi (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 acquisizione
InterlockedDecrement16Release Decrementi (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 Decrementi (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 Decrementi (diminuisce di uno) il valore della variabile a 64 bit specificata come operazione atomica.
InterlockedDecrementAcquire64 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 acquisizione.
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 in modo atomico, 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 la semantica di ordinamento della memoria di acquisizione.
InterlockedExchangeNoFence Imposta una variabile a 64 bit sul valore specificato come operazione atomica. L'operazione viene eseguita in modo atomico, 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 ordinamento della memoria di acquisizione
InterlockedExchange16NoFence Imposta una variabile a 16 bit sul valore specificato come operazione atomica. L'operazione viene eseguita in modo atomico, 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 la semantica di ordinamento della memoria di acquisizione.
InterlockedExchangeNoFence64 Imposta una variabile a 64 bit sul valore specificato come operazione atomica. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria
InterlockedExchangePointer Scambia in modo atomico una coppia di valori puntatore.
InterlockedExchangePointerAcquire Scambia in modo atomico una coppia di valori puntatore. L'operazione viene eseguita con la semantica di ordinamento della memoria di acquisizione.
InterlockedExchangePointerNoFence Scambia in modo atomico una coppia di indirizzi. L'operazione viene eseguita in modo atomico, 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 la semantica di ordinamento della memoria di acquisizione.
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 in modo atomico, 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 la semantica di ordinamento della memoria di acquisizione.
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 in modo atomico, ma senza usare barriere di memoria
InterlockedIncrement Incrementa (aumenta di uno) il valore della variabile a 32 bit specificata come operazione atomica.
InterlockedIncrementAcquire Incrementa (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 Incrementa (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 Incrementa (aumenta 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
InterlockedIncrement16 Incrementa (aumenta di uno) il valore della variabile a 16 bit specificata come operazione atomica
InterlockedIncrement16Acquire Incrementa (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 acquisizione
InterlockedIncrement16Release Incrementa (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 Incrementa (aumenta 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
interlockedIncrement64 Incrementa (aumenta di uno) il valore della variabile a 64 bit specificata come operazione atomica.
InterlockedIncrementAcquire64 Incrementa (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 Incrementa (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 Incrementa (aumenta di uno) il valore della variabile a 64 bit specificata come operazione atomica. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria
InterlockedOr Esegue un'operazione OR atomica sui valori di LONG specificati.
InterlockedOrAcquire Esegue un'operazione OR atomica sui valori di LONG specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di acquisizione.
InterlockedOrRelease Esegue un'operazione OR atomica sui valori di LONG specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedOrNoFence Esegue un'operazione OR atomica sui valori di LONG specificati. L'operazione viene eseguita in modo atomico, ma senza usare barriere di memoria
interlockedOr8 di 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 ordinamento della memoria di acquisizione.
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 di SHORT specificati.
InterlockedOr16Acquire Esegue un'operazione OR atomica sui valori di SHORT specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di acquisizione.
InterlockedOr16Release Esegue un'operazione OR atomica sui valori di SHORT specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedOr16NoFence Esegue un'operazione OR atomica sui valori di 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 ordinamento della memoria di acquisizione.
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 di LONG specificati.
InterlockedXorAcquire Esegue un'operazione XOR atomica sui valori di LONG specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di acquisizione.
InterlockedXorRelease Esegue un'operazione XOR atomica sui valori di LONG specificati. L'operazione viene eseguita con la semantica di ordinamento della memoria di rilascio.
InterlockedXorNoFence Esegue un'operazione XOR atomica sui valori di 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 ordinamento della memoria di acquisizione.
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 ordinamento della memoria di acquisizione.
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 ordinamento della memoria di acquisizione.
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 spazio dei nomi privato Descrizione
AddSIDToBoundaryDescriptor Aggiunge un nuovo identificatore 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 collegate da Singly

Funzione elenco collegato singly Descrizione
InitializeSListHead Inizializza l'intestazione di un elenco collegato cantamente.
InterlockedFlushSList Scarica l'intero elenco di elementi in un elenco collegato cantamente.
InterlockedPopEntrySList Rimuove un elemento dalla parte anteriore di un elenco collegato cantamente.
InterlockedPushEntrySList Inserisce un elemento nella parte anteriore di un elenco collegato cantamente.
InterlockedPushListSList Inserisce un elenco collegato singly all'inizio di un altro elenco collegato.
InterlockedPushListSListEx Inserisce un elenco collegato singly all'inizio di un altro elenco collegato. 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 specificato.
RtlFirstEntrySList Recupera la prima voce di un elenco collegato singly.
RtlInitializeSListHead Inizializza l'intestazione di un elenco collegato cantamente. Le applicazioni devono invece chiamare InitializeSListHead.
RtlInterlockedFlushSList Scarica l'intero elenco di elementi in un elenco collegato cantamente. Le applicazioni devono invece chiamare InterlockedFlushSList.
RtlInterlockedPopEntrySList Rimuove un elemento dalla parte anteriore di un elenco collegato cantamente. Le applicazioni devono invece chiamare InterlockedPopEntrySList.
RtlInterlockedPushEntrySList Inserisce un elemento nella parte anteriore di un elenco collegato cantamente. Le applicazioni devono chiamare InterlockedPushEntrySList.
RtlQueryDepthSList Recupera il numero di voci nell'elenco collegato 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 Aggiorna 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 scade 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, una routine di completamento I/O o una chiamata asincrona (APC) al thread o l'intervallo di timeout 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 un altro oggetto come singola operazione.
UnregisterWait Annulla un'operazione di attesa registrata.
UnregisterWaitEx Annulla un'operazione di attesa registrata.
WaitForMultipleObjects Attende che uno o tutti gli oggetti specificati si trovino nello stato segnalato o che scade l'intervallo di timeout.
WaitForMultipleObjectsEx Attende che uno o tutti gli oggetti specificati si trovino nello stato segnalato, una routine di completamento I/O o una chiamata asincrona (APC) al thread o l'intervallo di timeout trascorso.
WaitForSingleObject Attende che l'oggetto specificato non sia nello stato segnalato o che l'intervallo di timeout scade.
WaitForSingleObjectEx Attende fino a quando l'oggetto specificato non è nello stato segnalato, una routine di completamento I/O o una chiamata di procedura asincrona (APC) viene accodata al thread o l'intervallo di timeout trascorso.
WaitOnAddress Attende la modifica del valore in corrispondenza dell'indirizzo specificato.
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 della modifica del valore di un indirizzo.
wakeByAddressSingle Riattiva un thread in attesa della modifica del valore di un indirizzo.

 

Funzioni timer di attesa

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