Funzioni di sincronizzazione
Le funzioni seguenti vengono usate nella sincronizzazione.
- funzioni asincrone
- variabile Condition e funzioni di blocco SRW
- funzioni di sezione critiche
- Funzioni evento
- funzioni di inizializzazione monouso
- funzioni interlocked
- funzioni Mutex
- funzioni dello spazio dei nomi privato
- funzioni semaforo
- funzioni elenco collegate da Singly
- funzioni di barriera di sincronizzazione
- funzioni timer coda timer
- funzioni wait
- funzioni timer waitable
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. |