Fonctions de synchronisation

Les fonctions suivantes sont utilisées dans la synchronisation.

Fonctions asynchrones

Fonction asynchrone Description
APCProc Fonction de rappel définie par l’application utilisée avec la fonction QueueUserAPC .
GetOverlappedResult Récupère les résultats d’une opération avec chevauchement.
GetOverlappedResultEx Récupère les résultats d’une opération Overlapped dans un intervalle de délai d’attente spécifié.
QueueUserAPC Ajoute un objet d’appel de procédure asynchrone en mode utilisateur (APC) à la file d’attente APC du thread spécifié.

Variable de condition et fonctions de verrouillage SRW

Variable de condition et fonction de verrouillage SRW Description
AcquireSRWLockExclusive Acquiert un verrou SRW (Reader/Writer) en mode exclusif.
AcquireSRWLockShared Acquiert un verrou SRW (Compact Reader/Writer) en mode partagé.
InitializeConditionVariable Initialise une variable de condition.
InitializeSRWLock Initialiser un verrou SRW (Slim Reader/Writer).
ReleaseSRWLockExclusive Libère un verrou SRW (Reader/Writer) qui a été acquis en mode exclusif.
ReleaseSRWLockShared Libère un verrou SRW (Reader/Writer) qui a été acquis en mode partagé.
SleepConditionVariableCS Met en veille la variable de condition spécifiée et libère la section critique spécifiée sous la forme d’une opération atomique.
SleepConditionVariableSRW Met en veille la variable de condition spécifiée et libère le verrou spécifié sous la forme d’une opération atomique.
TryAcquireSRWLockExclusive Tente d’acquérir un verrou SRW (Slim Reader/Writer) en mode exclusif. Si l’appel réussit, le thread appelant prend la propriété du verrou.
TryAcquireSRWLockShared Tente d’acquérir un verrou SRW (Slim Reader/Writer) en mode partagé. Si l’appel réussit, le thread appelant prend la propriété du verrou.
WakeAllConditionVariable Mettre en éveil tous les threads en attente sur la variable de condition spécifiée.
WakeConditionVariable Veillez un thread unique en attente sur la variable de condition spécifiée.

Fonctions de section critiques

Fonction critique Description
DeleteCriticalSection Libère toutes les ressources utilisées par un objet de section critique non détenu.
EnterCriticalSection Attend la propriété de l’objet de section critique spécifié.
InitializeCriticalSection Initialise un objet de section critique.
InitializeCriticalSectionAndSpinCount Initialise un objet de section critique et définit le nombre de spins pour la section critique.
InitializeCriticalSectionEx Initialise un objet de section critique avec un nombre de spins et des indicateurs facultatifs.
LeaveCriticalSection Libère la propriété de l’objet de section critique spécifié.
SetCriticalSectionSpinCount Définit le nombre de spins pour la section critique spécifiée.
TryEnterCriticalSection Tente d’entrer dans une section critique sans blocage.

Fonctions d’événement

Event, fonction Description
CreateEvent Crée ou ouvre un objet d’événement nommé ou sans nom.
CreateEventEx Crée ou ouvre un objet d’événement nommé ou sans nom et retourne un handle vers l’objet.
OpenEvent Ouvre un objet d’événement nommé existant.
PulseEvent n' Définit l’état signalé de l’objet d’événement spécifié, puis le réinitialise à l’état non signalé après avoir libéré le nombre approprié de threads en attente.
ResetEvent Définit l’objet d’événement spécifié à l’état non signalé.
SetEvent Définit l’objet d’événement spécifié à l’état signalé.

Fonctions d’initialisation à usage unique

Fonction d’initialisation à usage unique Description
InitOnceBeginInitialize Commence l’initialisation unique.
InitOnceComplete Termine l’initialisation unique.
InitOnceExecuteOnce Exécute une seule fois la fonction spécifiée. Aucun autre thread spécifiant la même structure d’initialisation unique ne peut exécuter cette fonction pendant qu’elle est exécutée par le thread actuel.
InitOnceInitialize Initialise une structure d’initialisation à usage unique.

Fonctions verrouillées

Fonction d’interverrouillage Description
InterlockedAdd Effectue une opération d’addition atomique sur les valeurs longues spécifiées.
InterlockedAddAcquire Effectue une opération d’addition atomique sur les valeurs longues spécifiées. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedAddRelease Effectue une opération d’addition atomique sur les valeurs longues spécifiées. L’opération est effectuée avec la sémantique d’ordonnancement de mémoire de version.
InterlockedAddNoFence Effectue une opération d’addition atomique sur les valeurs longues spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedAdd64 Effectue une opération d’addition atomique sur les valeurs LongLong spécifiées.
InterlockedAddAcquire64 Effectue une opération d’addition atomique sur les valeurs LongLong spécifiées. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedAddRelease64 Effectue une opération d’addition atomique sur les valeurs LongLong spécifiées. L’opération est effectuée avec la sémantique d’ordonnancement de mémoire de version.
InterlockedAddNoFence64 Effectue une opération d’addition atomique sur les valeurs LongLong spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedAnd Effectue une opération atomique et sur les valeurs longues spécifiées.
InterlockedAndAcquire Effectue une opération atomique et sur les valeurs longues spécifiées. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedAndRelease Effectue une opération atomique et sur les valeurs longues spécifiées. L’opération est effectuée avec la sémantique d’ordonnancement de mémoire de version.
InterlockedAndNoFence Effectue une opération atomique et sur les valeurs longues spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedAnd8 Effectue une opération atomique et sur les valeurs char spécifiées.
InterlockedAnd8Acquire Effectue une opération atomique et sur les valeurs char spécifiées. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedAnd8Release Effectue une opération atomique et sur les valeurs char spécifiées. L’opération est effectuée avec la sémantique d’ordonnancement de mémoire de version.
InterlockedAnd8NoFence Effectue une opération atomique et sur les valeurs char spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedAnd16 Effectue une opération atomique et sur les valeurs courtes spécifiées.
InterlockedAnd16Acquire Effectue une opération atomique et sur les valeurs courtes spécifiées. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedAnd16Release Effectue une opération atomique et sur les valeurs courtes spécifiées. L’opération est effectuée avec la sémantique d’ordonnancement de mémoire de version.
InterlockedAnd16NoFence Effectue une opération atomique et sur les valeurs courtes spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedAnd64 Effectue une opération atomique et sur les valeurs LongLong spécifiées.
InterlockedAnd64Acquire Effectue une opération atomique et sur les valeurs LongLong spécifiées. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedAnd64Release Effectue une opération atomique et sur les valeurs LongLong spécifiées. L’opération est effectuée avec la sémantique d’ordonnancement de mémoire de version.
InterlockedAnd64NoFence Effectue une opération atomique et sur les valeurs LongLong spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedBitTestAndComplement Teste le bit spécifié de la valeur longue spécifiée et le complète.
InterlockedBitTestAndComplement64 Teste le bit spécifié de la valeur LONG64 spécifiée et le complète. L’opération est atomique.
InterlockedBitTestAndResetAcquire Teste le bit spécifié de la valeur longue spécifiée et lui affecte la valeur 0. L’opération est atomique et est effectuée avec la sémantique d’acquisition de mémoire acquise
InterlockedBitTestAndResetRelease Teste le bit spécifié de la valeur longue spécifiée et lui affecte la valeur 0. L’opération est atomique et est effectuée à l’aide de la sémantique de libération de mémoire
InterlockedBitTestAndSetAcquire Teste le bit spécifié de la valeur longue spécifiée et lui affecte la valeur 1. L’opération est atomique et est effectuée avec la sémantique d’acquisition de mémoire acquise
InterlockedBitTestAndSetRelease Teste le bit spécifié de la valeur longue spécifiée et lui affecte la valeur 1. L’opération est atomique et est effectuée avec la sémantique d’ordonnancement de mémoire de version
InterlockedBitTestAndReset Teste le bit spécifié de la valeur longue spécifiée et lui affecte la valeur 0.
InterlockedBitTestAndReset64 Teste le bit spécifié de la valeur LONG64 spécifiée et lui affecte la valeur 0.
InterlockedBitTestAndSet Teste le bit spécifié de la valeur longue spécifiée et lui affecte la valeur 1.
InterlockedBitTestAndSet64 Teste le bit spécifié de la valeur LONG64 spécifiée et lui affecte la valeur 1.
InterlockedCompare64Exchange128 Effectue une opération atomique de comparaison et d’échange sur les valeurs spécifiées. La fonction compare les valeurs 64 bits spécifiées et échange avec la valeur 128 bits spécifiée en fonction du résultat de la comparaison.
InterlockedCompare64ExchangeAcquire128 Effectue une opération atomique de comparaison et d’échange sur les valeurs spécifiées. La fonction compare les valeurs 64 bits spécifiées et échange avec la valeur 128 bits spécifiée en fonction du résultat de la comparaison. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedCompare64ExchangeRelease128 Effectue une opération atomique de comparaison et d’échange sur les valeurs spécifiées. La fonction compare les valeurs 64 bits spécifiées et échange avec la valeur 128 bits spécifiée en fonction du résultat de la comparaison. L’opération est effectuée avec la sémantique d’ordonnancement de mémoire de version.
InterlockedCompareExchange Effectue une opération atomique de comparaison et d’échange sur les valeurs spécifiées. La fonction compare deux valeurs 32 bits spécifiées et échange avec une autre valeur 32 bits en fonction du résultat de la comparaison.
InterlockedCompareExchangeAcquire Effectue une opération atomique de comparaison et d’échange sur les valeurs spécifiées. La fonction compare deux valeurs 32 bits spécifiées et échange avec une autre valeur 32 bits en fonction du résultat de la comparaison. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedCompareExchangeRelease Effectue une opération atomique de comparaison et d’échange sur les valeurs spécifiées. La fonction compare deux valeurs 32 bits spécifiées et échange avec une autre valeur 32 bits en fonction du résultat de la comparaison. L’échange est effectué avec la sémantique d’ordonnancement de mémoire de version.
InterlockedCompareExchangeNoFence Effectue une opération atomique de comparaison et d’échange sur les valeurs spécifiées. La fonction compare deux valeurs 32 bits spécifiées et échange avec une autre valeur 32 bits en fonction du résultat de la comparaison. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedCompareExchange64 Effectue une opération atomique de comparaison et d’échange sur les valeurs spécifiées. La fonction compare deux valeurs 64 bits spécifiées et échange avec une autre valeur 64 bits en fonction du résultat de la comparaison.
InterlockedCompareExchangeAcquire64 Effectue une opération atomique de comparaison et d’échange sur les valeurs spécifiées. La fonction compare deux valeurs 64 bits spécifiées et échange avec une autre valeur 64 bits en fonction du résultat de la comparaison. L’échange est effectué avec la sémantique d’acquisition de mémoire acquise.
InterlockedCompareExchangeRelease64 Effectue une opération atomique de comparaison et d’échange sur les valeurs spécifiées. La fonction compare deux valeurs 64 bits spécifiées et échange avec une autre valeur 64 bits en fonction du résultat de la comparaison. L’échange est effectué avec la sémantique d’ordonnancement de mémoire de version.
InterlockedCompareExchangeNoFence64 Effectue une opération atomique de comparaison et d’échange sur les valeurs spécifiées. La fonction compare deux valeurs 64 bits spécifiées et échange avec une autre valeur 64 bits en fonction du résultat de la comparaison. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedCompareExchange16 Effectue une opération atomique de comparaison et d’échange sur les valeurs spécifiées. La fonction compare deux valeurs 16 bits spécifiées et échange avec une autre valeur de 16 bits en fonction du résultat de la comparaison.
InterlockedCompareExchange16Acquire Effectue une opération atomique de comparaison et d’échange sur les valeurs spécifiées. La fonction compare deux valeurs 16 bits spécifiées et échange avec une autre valeur de 16 bits en fonction du résultat de la comparaison. L’opération est effectuée avec l’acquisition de la sémantique d’ordonnancement de mémoire
InterlockedCompareExchange16Release Effectue une opération atomique de comparaison et d’échange sur les valeurs spécifiées. La fonction compare deux valeurs 16 bits spécifiées et échange avec une autre valeur de 16 bits en fonction du résultat de la comparaison. L’échange est effectué avec la sémantique d’ordonnancement de mémoire de version
InterlockedCompareExchange16NoFence Effectue une opération atomique de comparaison et d’échange sur les valeurs spécifiées. La fonction compare deux valeurs 16 bits spécifiées et échange avec une autre valeur de 16 bits en fonction du résultat de la comparaison. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedCompareExchange128 Effectue une opération atomique de comparaison et d’échange sur les valeurs spécifiées. La fonction compare deux valeurs 128 bits spécifiées et échange avec une autre valeur 128 bits en fonction du résultat de la comparaison
InterlockedCompareExchangePointer Effectue une opération atomique de comparaison et d’échange sur les valeurs de pointeur spécifiées. La fonction compare deux valeurs de pointeur spécifiées et échange avec une autre valeur de pointeur en fonction du résultat de la comparaison.
InterlockedCompareExchangePointerAcquire Effectue une opération atomique de comparaison et d’échange sur les valeurs de pointeur spécifiées. La fonction compare deux valeurs de pointeur spécifiées et échange avec une autre valeur de pointeur en fonction du résultat de la comparaison. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedCompareExchangePointerRelease Effectue une opération atomique de comparaison et d’échange sur les valeurs de pointeur spécifiées. La fonction compare deux valeurs de pointeur spécifiées et échange avec une autre valeur de pointeur en fonction du résultat de la comparaison. L’opération est effectuée avec la sémantique d’ordonnancement de mémoire de version.
InterlockedCompareExchangePointerNoFence Effectue une opération atomique de comparaison et d’échange sur les valeurs spécifiées. La fonction compare deux valeurs de pointeur spécifiées et échange avec une autre valeur de pointeur en fonction du résultat de la comparaison. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedDecrement Décrémente (réduit d’une unité) la valeur de la variable 32 bits spécifiée comme une opération atomique.
InterlockedDecrementAcquire Décrémente (réduit d’une unité) la valeur de la variable 32 bits spécifiée comme une opération atomique. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedDecrementRelease Décrémente (réduit d’une unité) la valeur de la variable 32 bits spécifiée comme une opération atomique. L’opération est effectuée avec la sémantique d’ordonnancement de mémoire de version.
InterlockedDecrementNoFence Décrémente (réduit d’une unité) la valeur de la variable 32 bits spécifiée comme une opération atomique. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedDecrement16 Décrémente (réduit d’une unité) la valeur de la variable 16 bits spécifiée comme une opération atomique
InterlockedDecrement16Acquire Décrémente (réduit d’une unité) la valeur de la variable 16 bits spécifiée comme une opération atomique. L’opération est effectuée avec l’acquisition de la sémantique d’ordonnancement de mémoire
InterlockedDecrement16Release Décrémente (réduit d’une unité) la valeur de la variable 16 bits spécifiée comme une opération atomique. L’opération est effectuée avec la sémantique d’ordonnancement de mémoire de version
InterlockedDecrement16NoFence Décrémente (réduit d’une unité) la valeur de la variable 16 bits spécifiée comme une opération atomique. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedDecrement64 Décrémente (réduit d’une unité) la valeur de la variable 64 bits spécifiée comme une opération atomique.
InterlockedDecrementAcquire64 Décrémente (réduit d’une unité) la valeur de la variable 64 bits spécifiée comme une opération atomique. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedDecrementRelease64 Décrémente (réduit d’une unité) la valeur de la variable 64 bits spécifiée comme une opération atomique. L’opération est effectuée avec la sémantique d’ordonnancement de mémoire de version.
InterlockedDecrementNoFence64 Décrémente (réduit d’une unité) la valeur de la variable 64 bits spécifiée comme une opération atomique. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
Interlockedexchang Affecte à une variable 32 bits la valeur spécifiée sous la forme d’une opération atomique.
InterlockedExchangeAcquire Affecte à une variable 32 bits la valeur spécifiée sous la forme d’une opération atomique. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedExchangeNoFence Affecte à une variable 64 bits la valeur spécifiée sous la forme d’une opération atomique. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedExchange8 Affecte à une variable 8 bits la valeur spécifiée comme une opération atomique
InterlockedExchange16 Définit une variable de 16 bits à la valeur spécifiée comme une opération atomique.
InterlockedExchange16Acquire Définit une variable de 16 bits à la valeur spécifiée comme une opération atomique. L’opération est effectuée à l’aide de la sémantique d’acquisition de mémoire
InterlockedExchange16NoFence Définit une variable de 16 bits à la valeur spécifiée comme une opération atomique. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedExchange64 Affecte à une variable 64 bits la valeur spécifiée sous la forme d’une opération atomique.
InterlockedExchangeAcquire64 Affecte à une variable 32 bits la valeur spécifiée sous la forme d’une opération atomique. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedExchangeNoFence64 Affecte à une variable 64 bits la valeur spécifiée sous la forme d’une opération atomique. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedExchangePointer Échange atomiquement une paire de valeurs de pointeur.
InterlockedExchangePointerAcquire Échange atomiquement une paire de valeurs de pointeur. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedExchangePointerNoFence Échange atomiquement une paire d’adresses. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedExchangeSubtract Effectue une soustraction atomique de deux valeurs.
InterlockedExchangeAdd Effectue un ajout atomique de valeurs 2 32 bits.
InterlockedExchangeAddAcquire Effectue un ajout atomique de valeurs 2 32 bits. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedExchangeAddRelease Effectue un ajout atomique de valeurs 2 32 bits. L’opération est effectuée avec la sémantique d’ordonnancement de mémoire de version.
InterlockedExchangeAddNoFence Effectue un ajout atomique de valeurs 2 32 bits. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedExchangeAdd64 Effectue un ajout atomique de valeurs 2 64 bits.
InterlockedExchangeAddAcquire64 Effectue un ajout atomique de valeurs 2 64 bits. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedExchangeAddRelease64 Effectue un ajout atomique de valeurs 2 64 bits. L’opération est effectuée avec la sémantique d’ordonnancement de mémoire de version.
InterlockedExchangeAddNoFence64 Effectue un ajout atomique de valeurs 2 64 bits. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedIncrement Incrémente (augmente d’une unité) la valeur de la variable 32 bits spécifiée comme une opération atomique.
InterlockedIncrementAcquire Incrémente (augmente d’une unité) la valeur de la variable 32 bits spécifiée comme une opération atomique. L’opération est effectuée à l’aide d’une sémantique d’ordonnancement de mémoire.
InterlockedIncrementRelease Incrémente (augmente d’une unité) la valeur de la variable 32 bits spécifiée comme une opération atomique. L’opération est effectuée à l’aide de la sémantique d’ordonnancement de mémoire Release.
InterlockedIncrementNoFence Incrémente (augmente d’une unité) la valeur de la variable 32 bits spécifiée comme une opération atomique. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedIncrement16 Incrémente (augmente d’une unité) la valeur de la variable 16 bits spécifiée comme une opération atomique
InterlockedIncrement16Acquire Incrémente (augmente d’une unité) la valeur de la variable 16 bits spécifiée comme une opération atomique. L’opération est effectuée à l’aide de la sémantique d’acquisition de mémoire
InterlockedIncrement16Release Incrémente (augmente d’une unité) la valeur de la variable 16 bits spécifiée comme une opération atomique. L’opération est effectuée à l’aide de la sémantique d’ordonnancement de mémoire Release
InterlockedIncrement16NoFence Incrémente (augmente d’une unité) la valeur de la variable 16 bits spécifiée comme une opération atomique. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedIncrement64 Incrémente (augmente d’une unité) la valeur de la variable 64 bits spécifiée comme une opération atomique.
InterlockedIncrementAcquire64 Incrémente (augmente d’une unité) la valeur de la variable 64 bits spécifiée comme une opération atomique. L’opération est effectuée à l’aide d’une sémantique d’ordonnancement de mémoire.
InterlockedIncrementRelease64 Incrémente (augmente d’une unité) la valeur de la variable 64 bits spécifiée comme une opération atomique. L’opération est effectuée à l’aide de la sémantique d’ordonnancement de mémoire Release.
InterlockedIncrementNoFence64 Incrémente (augmente d’une unité) la valeur de la variable 64 bits spécifiée comme une opération atomique. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
Interverrouiller Effectue une opération atomique ou sur les valeurs longues spécifiées.
InterlockedOrAcquire Effectue une opération atomique ou sur les valeurs longues spécifiées. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedOrRelease Effectue une opération atomique ou sur les valeurs longues spécifiées. L’opération est effectuée avec la sémantique d’ordonnancement de mémoire de version.
InterlockedOrNoFence Effectue une opération atomique ou sur les valeurs longues spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedOr8 Effectue une opération atomique ou sur les valeurs char spécifiées.
InterlockedOr8Acquire Effectue une opération atomique ou sur les valeurs char spécifiées. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedOr8Release Effectue une opération atomique ou sur les valeurs char spécifiées. L’opération est effectuée avec la sémantique d’ordonnancement de mémoire de version.
InterlockedOr8NoFence Effectue une opération atomique ou sur les valeurs char spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedOr16 Effectue une opération atomique ou sur les valeurs courtes spécifiées.
InterlockedOr16Acquire Effectue une opération atomique ou sur les valeurs courtes spécifiées. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedOr16Release Effectue une opération atomique ou sur les valeurs courtes spécifiées. L’opération est effectuée avec la sémantique d’ordonnancement de mémoire de version.
InterlockedOr16NoFence Effectue une opération atomique ou sur les valeurs courtes spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedOr64 Effectue une opération atomique ou sur les valeurs LongLong spécifiées.
InterlockedOr64Acquire Effectue une opération atomique ou sur les valeurs LongLong spécifiées. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedOr64Release Effectue une opération atomique ou sur les valeurs LongLong spécifiées. L’opération est effectuée avec la sémantique d’ordonnancement de mémoire de version.
InterlockedOr64NoFence Effectue une opération atomique ou sur les valeurs LongLong spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedXor Effectue une opération atomique XOR sur les valeurs longues spécifiées.
InterlockedXorAcquire Effectue une opération atomique XOR sur les valeurs longues spécifiées. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedXorRelease Effectue une opération atomique XOR sur les valeurs longues spécifiées. L’opération est effectuée avec la sémantique d’ordonnancement de mémoire de version.
InterlockedXorNoFence Effectue une opération atomique XOR sur les valeurs longues spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedXor8 Effectue une opération Atomic XOR sur les valeurs char spécifiées.
InterlockedXor8Acquire Effectue une opération Atomic XOR sur les valeurs char spécifiées. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedXor8Release Effectue une opération Atomic XOR sur les valeurs char spécifiées. L’opération est effectuée avec la sémantique d’ordonnancement de mémoire de version.
InterlockedXor8NoFence Effectue une opération Atomic XOR sur les valeurs char spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedXor16 Effectue une opération atomique XOR sur les valeurs courtes spécifiées.
InterlockedXor16Acquire Effectue une opération atomique XOR sur les valeurs courtes spécifiées. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedXor16Release Effectue une opération atomique XOR sur les valeurs courtes spécifiées. L’opération est effectuée avec la sémantique d’ordonnancement de mémoire de version.
InterlockedXor16NoFence Effectue une opération atomique XOR sur les valeurs courtes spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedXor64 Effectue une opération Atomic XOR sur les valeurs LongLong spécifiées.
InterlockedXor64Acquire Effectue une opération Atomic XOR sur les valeurs LongLong spécifiées. L’opération est effectuée avec la sémantique d’acquisition de mémoire acquise.
InterlockedXor64Release Effectue une opération Atomic XOR sur les valeurs LongLong spécifiées. L’opération est effectuée avec la sémantique d’ordonnancement de mémoire de version.
InterlockedXor64NoFence Effectue une opération Atomic XOR sur les valeurs LongLong spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire

Fonctions mutex

Mutex, fonction Description
CreateMutex Crée ou ouvre un objet mutex nommé ou sans nom.
CreateMutexEx Crée ou ouvre un objet mutex nommé ou sans nom et retourne un handle vers l’objet.
OpenMutex Ouvre un objet mutex nommé existant.
ReleaseMutex Libère la propriété de l’objet mutex spécifié.

Fonctions d’espace de noms privées

Fonction d’espace de noms privée Description
AddSIDToBoundaryDescriptor Ajoute un nouvel identificateur de sécurité (SID) au descripteur de limite spécifié.
AddIntegrityLabelToBoundaryDescriptor Ajoute un nouvel identificateur de sécurité (SID) requis au descripteur de limite spécifié.
ClosePrivateNamespace Ferme un handle d’espace de noms ouvert.
CreateBoundaryDescriptor Crée un descripteur de limite.
CreatePrivateNamespace Crée un espace de noms privé.
DeleteBoundaryDescriptor Supprime le descripteur de limite spécifié.
OpenPrivateNamespace Ouvre un espace de noms privé.

Fonctions Semaphore

Semaphore, fonction Description
CreateSemaphore, Crée ou ouvre un objet sémaphore nommé ou sans nom.
CreateSemaphoreEx Crée ou ouvre un objet sémaphore nommé ou sans nom et retourne un handle vers l’objet.
OpenSemaphore Ouvre un objet sémaphore nommé existant.
ReleaseSemaphore, Augmente le nombre de l’objet sémaphore spécifié d’une valeur spécifiée.

Fonctions de liste à liaison unique

Fonction de liste liée de façon unique Description
InitializeSListHead Initialise le en-tête d’une liste liée de façon unique.
InterlockedFlushSList Vide l’intégralité de la liste d’éléments dans une liste à liaison unique.
InterlockedPopEntrySList Supprime un élément de l’avant d’une liste à liaison unique.
InterlockedPushEntrySList Insère un élément au début d’une liste à liaison unique.
InterlockedPushListSList Insère une liste à liaison unique à l’avant d’une autre liste à liaison unique.
InterlockedPushListSListEx Insère une liste à liaison unique à l’avant d’une autre liste à liaison unique. L’accès aux listes est synchronisé sur un système multiprocesseur. Cette version de la méthode n’utilise pas la Convention d’appel _ _ fastcall
QueryDepthSList Récupère le nombre d’entrées dans la liste liée unique spécifiée.
RtlFirstEntrySList Récupère la première entrée d’une liste à liaison unique.
RtlInitializeSListHead Initialise le en-tête d’une liste liée de façon unique. Les applications doivent appeler InitializeSListHead à la place.
RtlInterlockedFlushSList Vide l’intégralité de la liste d’éléments dans une liste à liaison unique. Les applications doivent appeler InterlockedFlushSList à la place.
RtlInterlockedPopEntrySList Supprime un élément de l’avant d’une liste à liaison unique. Les applications doivent appeler InterlockedPopEntrySList à la place.
RtlInterlockedPushEntrySList Insère un élément au début d’une liste à liaison unique. Les applications doivent appeler InterlockedPushEntrySList à la place.
RtlQueryDepthSList Récupère le nombre d’entrées dans la liste liée unique spécifiée. Les applications doivent appeler QueryDepthSList à la place.

Fonctions de barrière de synchronisation

Fonction barrière de synchronisation Description
DeleteSynchronizationBarrier Supprime une barrière de synchronisation.
EnterSynchronizationBarrier Entre une barrière de synchronisation et attend le nombre de threads approprié pour Rendezvous au niveau du cloisonnement.
InitializeSynchronizationBarrier Initialise une nouvelle barrière de synchronisation.

Minuterie-fonctions de minuterie de file d’attente

Minuterie-fonction du minuteur de file d’attente Description
ChangeTimerQueueTimer Met à jour un minuteur de file d’attente de minuterie.
CreateTimerQueue Crée une file d’attente pour les minuteurs.
CreateTimerQueueTimer Crée un minuteur de file d’attente de minuterie.
DeleteTimerQueue Supprime une file d’attente du minuteur.
DeleteTimerQueueEx Supprime une file d’attente du minuteur.
DeleteTimerQueueTimer Annule un minuteur de file d’attente de minuterie.

Fonctions Wait

Wait (fonction) Description
MsgWaitForMultipleObjects Attend que l’un ou l’ensemble des objets spécifiés soient à l’état signalé ou que l’intervalle de délai d’attente expire. Les objets peuvent inclure des objets d’événement d’entrée.
MsgWaitForMultipleObjectsEx Attend qu’un ou tous les objets spécifiés soient à l’état signalé, qu’une routine d’exécution d’e/s ou un appel de procédure asynchrone (APC) soit mis en file d’attente vers le thread, ou que l’intervalle de délai d’attente soit écoulé. Le tableau d’objets peut inclure des objets d’événement d’entrée.
RegisterWaitForSingleObject Dirige un thread d’attente dans le pool de threads à attendre sur l’objet.
SignalObjectAndWait Signale un objet et attend un autre objet comme une seule opération.
UnregisterWait Annule une opération d’attente inscrite.
UnregisterWaitEx Annule une opération d’attente inscrite.
WaitForMultipleObjects Attend que l’un ou l’ensemble des objets spécifiés soient à l’état signalé ou que l’intervalle de délai d’attente expire.
WaitForMultipleObjectsEx Attend qu’un ou tous les objets spécifiés soient à l’état signalé, qu’une routine d’exécution d’e/s ou un appel de procédure asynchrone (APC) soit mis en file d’attente vers le thread, ou que l’intervalle de délai d’attente soit écoulé.
WaitForSingleObject Attend que l’objet spécifié soit dans l’état signalé ou que l’intervalle de délai d’attente expire.
WaitForSingleObjectEx Attend que l’objet spécifié soit dans l’état signalé, qu’une routine d’exécution d’e/s ou un appel de procédure asynchrone (APC) soit mis en file d’attente vers le thread, ou que l’intervalle de délai d’attente soit écoulé.
WaitOnAddress Attend la modification de la valeur à l’adresse spécifiée.
WaitOrTimerCallback ( Fonction définie par l’application qui sert d’adresse de départ pour un rappel de minuterie ou un rappel d’attente enregistré.
WakeByAddressAll Sort tous les threads en attente de la modification de la valeur d’une adresse.
WakeByAddressSingle Sort un thread en attente de la modification de la valeur d’une adresse.

Fonctions de minuterie d’attente

Fonction d’horloge d’attente Description
CancelWaitableTimer Définit le minuteur d’attente spécifié à l’état inactif.
CreateWaitableTimer Crée ou ouvre un objet de minuteur qui est attendu.
CreateWaitableTimerEx Crée ou ouvre un objet de minuteur qui est attendu et retourne un handle à l’objet.
OpenWaitableTimer Ouvre un objet de minuteur attendu nommé existant.
SetWaitableTimer Active le minuteur attendu spécifié.
SetWaitableTimerEx Active le minuteur attendu spécifié et fournit des informations de contexte pour le minuteur. .
TimerAPCProc Routine de fin d’exécution du minuteur définie par l’application utilisée avec la fonction SetWaitableTimer .