Funzioni di sincronizzazione
Le funzioni seguenti vengono usate nella sincronizzazione.
- Funzioni asincrone
- Funzioni di blocco di condizione e SRW
- Funzioni di sezione critiche
- Funzioni evento
- Funzioni di inizializzazione una sola volta
- Funzioni interlocked
- Funzioni Mutex
- Funzioni dello spazio dei nomi private
- Funzioni di semaforo
- Funzioni elenco collegato singly
- Funzioni di barriera di sincronizzazione
- Funzioni timer coda timer
- Funzioni di attesa
- Funzioni waitable-timer
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 . |