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 qui se chevauche.
GetOverlappedResultEx Récupère les résultats d’une opération qui se chevauche dans un intervalle de délai d’expiration 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é.

 

Variables de condition et fonctions de verrouillage SRW

Variable de condition et fonction de verrouillage SRW Description
AcquireSRWLockExclusive Acquiert un verrou de lecteur/enregistreur mince (SRW) en mode exclusif.
AcquireSRWLockShared Acquiert un verrou de lecteur/enregistreur mince (SRW) en mode partagé.
InitializeConditionVariable Initialise une variable de condition.
InitializeSRWLock Initialisez un verrou de lecteur/enregistreur (SRW) mince.
ReleaseSRWLockExclusive Libère un verrou de lecteur/enregistreur mince (SRW) qui a été acquis en mode exclusif.
ReleaseSRWLockShared Libère un verrou de lecteur/enregistreur mince (SRW) qui a été acquis en mode partagé.
SleepConditionVariableCS Veille sur la variable de condition spécifiée et libère la section critique spécifiée en tant qu’opération atomique.
SleepConditionVariableSRW Veille sur la variable de condition spécifiée et libère le verrou spécifié en tant qu’opération atomique.
TryAcquireSRWLockExclusive Tente d’acquérir un verrou de lecteur/enregistreur (SRW) en mode exclusif. Si l’appel réussit, le thread appelant prend la propriété du verrou.
TryAcquireSRWLockShared Tente d’acquérir un verrou de lecteur/enregistreur mince (SRW) en mode partagé. Si l’appel réussit, le thread appelant prend la propriété du verrou.
WakeAllConditionVariable Réveillez tous les threads en attente sur la variable de condition spécifiée.
WakeConditionVariable Réveillez un thread unique en attente sur la variable de condition spécifiée.

 

Fonctions de section critiques

Fonction de section critique Description
DeleteCriticalSection Libère toutes les ressources utilisées par un objet de section critique non propriétaire.
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 bloquer.

 

Fonctions d’événement

Fonction d’événement 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 à l’objet .
OpenEvent Ouvre un objet d’événement nommé existant.
PulseEvent Définit l’objet d’événement spécifié à l’état signalé, puis le rétablit à l’état non signé 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 signé.
SetEvent Définit l’objet d’événement spécifié à l’état signalé.

 

Fonctions d’initialisation à usage unique

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

 

Fonctions verrouillées

Fonction verrouillée Description
InterlockedAdd Effectue une opération d’addition atomique sur les valeurs LONG spécifiées.
InterlockedAddAcquire Effectue une opération d’addition atomique sur les valeurs LONG spécifiées. L’opération est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire.
InterlockedAddRelease Effectue une opération d’addition atomique sur les valeurs LONG spécifiées. L’opération est effectuée avec la sémantique de classement de la mémoire de mise en production.
InterlockedAddNoFence Effectue une opération d’addition atomique sur les valeurs LONG 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 l’ordre de la mémoire.
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 de classement de la mémoire de mise en production.
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 AND atomique sur les valeurs LONG spécifiées.
InterlockedAndAcquire Effectue une opération AND atomique sur les valeurs LONG spécifiées. L’opération est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire.
InterlockedAndRelease Effectue une opération AND atomique sur les valeurs LONG spécifiées. L’opération est effectuée avec la sémantique de classement de la mémoire de mise en production.
InterlockedAndNoFence Effectue une opération AND atomique sur les valeurs LONG spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedAnd8 Effectue une opération AND atomique sur les valeurs char spécifiées.
InterlockedAnd8Acquire Effectue une opération AND atomique sur les valeurs char spécifiées. L’opération est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire.
InterlockedAnd8Release Effectue une opération AND atomique sur les valeurs char spécifiées. L’opération est effectuée avec la sémantique de classement de la mémoire de mise en production.
InterlockedAnd8NoFence Effectue une opération AND atomique 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 AND atomique sur les valeurs SHORT spécifiées.
InterlockedAnd16Acquire Effectue une opération AND atomique sur les valeurs SHORT spécifiées. L’opération est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire.
InterlockedAnd16Release Effectue une opération AND atomique sur les valeurs SHORT spécifiées. L’opération est effectuée avec la sémantique de classement de la mémoire de mise en production.
InterlockedAnd16NoFence Effectue une opération AND atomique sur les valeurs SHORT spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedAnd64 Effectue une opération AND atomique sur les valeurs LONGLONG spécifiées.
InterlockedAnd64Acquire Effectue une opération AND atomique sur les valeurs LONGLONG spécifiées. L’opération est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire.
InterlockedAnd64Release Effectue une opération AND atomique sur les valeurs LONGLONG spécifiées. L’opération est effectuée avec la sémantique de classement de la mémoire de mise en production.
InterlockedAnd64NoFence Effectue une opération AND atomique 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 LONG 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 LONG spécifiée et lui affecte la valeur 0. L’opération est atomique, et elle est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire
InterlockedBitTestAndResetRelease Teste le bit spécifié de la valeur LONG 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 la libération de mémoire
InterlockedBitTestAndSetAcquire Teste le bit spécifié de la valeur LONG spécifiée et lui affecte la valeur 1. L’opération est atomique, et elle est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire
InterlockedBitTestAndSetRelease Teste le bit spécifié de la valeur LONG spécifiée et lui affecte la valeur 1. L’opération est atomique, et elle est effectuée avec la sémantique de classement de la mémoire de mise en production
InterlockedBitTestAndReset Teste le bit spécifié de la valeur LONG 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 LONG 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 de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare les valeurs 64 bits et les échanges spécifiés avec la valeur 128 bits spécifiée en fonction du résultat de la comparaison.
InterlockedCompare64ExchangeAcquire128 Effectue une opération de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare les valeurs 64 bits et les échanges spécifiés 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 l’ordre de la mémoire.
InterlockedCompare64ExchangeRelease128 Effectue une opération de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare les valeurs 64 bits et les échanges spécifiés 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 de classement de la mémoire de mise en production.
InterlockedCompareExchange Effectue une opération de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare deux valeurs 32 bits et échanges spécifiés avec une autre valeur 32 bits en fonction du résultat de la comparaison.
InterlockedCompareExchangeAcquire Effectue une opération de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare deux valeurs 32 bits et échanges spécifiés 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 l’ordre de la mémoire.
InterlockedCompareExchangeRelease Effectue une opération de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare deux valeurs 32 bits et échanges spécifiés avec une autre valeur 32 bits en fonction du résultat de la comparaison. L’échange est effectué avec la sémantique de classement de la mémoire de mise en production.
InterlockedCompareExchangeNoFence Effectue une opération de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare deux valeurs 32 bits et échanges spécifiés 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 de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare deux valeurs 64 bits et échanges spécifiés avec une autre valeur 64 bits en fonction du résultat de la comparaison.
InterlockedCompareExchangeAcquire64 Effectue une opération de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare deux valeurs 64 bits et échanges spécifiés 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 l’ordre de la mémoire.
InterlockedCompareExchangeRelease64 Effectue une opération de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare deux valeurs 64 bits et échanges spécifiés avec une autre valeur 64 bits en fonction du résultat de la comparaison. L’échange est effectué avec la sémantique de classement de la mémoire de mise en production.
InterlockedCompareExchangeNoFence64 Effectue une opération de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare deux valeurs 64 bits et échanges spécifiés 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 de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare deux valeurs et échanges 16 bits spécifiés avec une autre valeur 16 bits en fonction du résultat de la comparaison
InterlockedCompareExchange16Acquire Effectue une opération de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare deux valeurs 16 bits spécifiées et les échanges avec une autre valeur de 16 bits en fonction du résultat de la comparaison. L’opération est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire
InterlockedCompareExchange16Release Effectue une opération de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare deux valeurs 16 bits spécifiées et les échanges avec une autre valeur de 16 bits en fonction du résultat de la comparaison. L’échange est effectué avec la sémantique de classement de la mémoire de mise en production
InterlockedCompareExchange16NoFence Effectue une opération de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare deux valeurs 16 bits spécifiées et les échanges 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 de comparaison et d’échange atomique sur les valeurs spécifiées. La fonction compare deux valeurs et échanges 128 bits spécifiés avec une autre valeur de 128 bits en fonction du résultat de la comparaison
InterlockedCompareExchangePointer Effectue une opération de comparaison et d’échange atomique 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 de comparaison et d’échange atomique 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 l’ordre de la mémoire.
InterlockedCompareExchangePointerRelease Effectue une opération de comparaison et d’échange atomique 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 de classement de la mémoire de mise en production.
InterlockedCompareExchangePointerNoFence Effectue une opération de comparaison et d’échange atomique 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 (diminue d’un) la valeur de la variable 32 bits spécifiée en tant qu’opération atomique.
InterlockedDecrementAcquire Décrémente (diminue d’un) la valeur de la variable 32 bits spécifiée en tant qu’opération atomique. L’opération est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire.
InterlockedDecrementRelease Décrémente (diminue d’un) la valeur de la variable 32 bits spécifiée en tant qu’opération atomique. L’opération est effectuée avec la sémantique de classement de la mémoire de mise en production.
InterlockedDecrementNoFence Décrémente (diminue d’un) la valeur de la variable 32 bits spécifiée en tant qu’opération atomique. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedDecrement16 Décrémente (diminue d’un) la valeur de la variable 16 bits spécifiée en tant qu’opération atomique
InterlockedDecrement16Acquire Décrémente (diminue d’un) la valeur de la variable 16 bits spécifiée en tant qu’opération atomique. L’opération est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire
InterlockedDecrement16Release Décrémente (diminue d’un) la valeur de la variable 16 bits spécifiée en tant qu’opération atomique. L’opération est effectuée avec la sémantique de classement de la mémoire de mise en production
InterlockedDecrement16NoFence Décrémente (diminue d’un) la valeur de la variable 16 bits spécifiée en tant qu’opération atomique. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedDecrement64 Décrémente (diminue d’un) la valeur de la variable 64 bits spécifiée en tant qu’opération atomique.
InterlockedDecrementAcquire64 Décrémente (diminue d’un) la valeur de la variable 64 bits spécifiée en tant qu’opération atomique. L’opération est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire.
InterlockedDecrementRelease64 Décrémente (diminue d’un) la valeur de la variable 64 bits spécifiée en tant qu’opération atomique. L’opération est effectuée avec la sémantique d’ordre de la mémoire de mise en production.
InterlockedDecrementNoFence64 Décrémente (diminue d’un) la valeur de la variable 64 bits spécifiée en tant qu’opération atomique. L’opération est effectuée de manière atomique, mais sans utiliser de barrières mémoire
InterlockedExchange Définit une variable 32 bits sur la valeur spécifiée en tant qu’opération atomique.
InterlockedExchangeAcquire Définit une variable 32 bits sur la valeur spécifiée en tant qu’opération atomique. L’opération est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire.
InterlockedExchangeNoFence Définit une variable 64 bits sur la valeur spécifiée en tant qu’opération atomique. L’opération est effectuée de manière atomique, mais sans utiliser de barrières mémoire
InterlockedExchange8 Définit une variable 8 bits sur la valeur spécifiée en tant qu’opération atomique
InterlockedExchange16 Définit une variable 16 bits sur la valeur spécifiée en tant qu’opération atomique.
InterlockedExchange16Acquire Définit une variable 16 bits sur la valeur spécifiée en tant qu’opération atomique. L’opération est effectuée à l’aide de la sémantique d’acquisition de l’ordre de la mémoire
InterlockedExchange16NoFence Définit une variable 16 bits sur la valeur spécifiée en tant qu’opération atomique. L’opération est effectuée de manière atomique, mais sans utiliser de barrières mémoire
InterlockedExchange64 Définit une variable 64 bits sur la valeur spécifiée en tant qu’opération atomique.
InterlockedExchangeAcquire64 Définit une variable 32 bits sur la valeur spécifiée en tant qu’opération atomique. L’opération est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire.
InterlockedExchangeNoFence64 Définit une variable 64 bits sur la valeur spécifiée en tant qu’opération atomique. L’opération est effectuée de manière atomique, mais sans utiliser de barrières 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 l’ordre de la mémoire.
InterlockedExchangePointerNoFence Échange atomiquement une paire d’adresses. L’opération est effectuée de manière atomique, mais sans utiliser de barrières mémoire
InterlockedExchangeSubtract Effectue une soustraction atomique de deux valeurs.
InterlockedExchangeAdd Effectue une addition atomique de deux valeurs 32 bits.
InterlockedExchangeAddAcquire Effectue une addition atomique de deux valeurs 32 bits. L’opération est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire.
InterlockedExchangeAddRelease Effectue une addition atomique de deux valeurs 32 bits. L’opération est effectuée avec la sémantique d’ordre de la mémoire de mise en production.
InterlockedExchangeAddNoFence Effectue une addition atomique de deux valeurs 32 bits. L’opération est effectuée de manière atomique, mais sans utiliser de barrières mémoire
InterlockedExchangeAdd64 Effectue une addition atomique de deux valeurs 64 bits.
InterlockedExchangeAddAcquire64 Effectue une addition atomique de deux valeurs 64 bits. L’opération est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire.
InterlockedExchangeAddRelease64 Effectue une addition atomique de deux valeurs 64 bits. L’opération est effectuée avec la sémantique d’ordre de la mémoire de mise en production.
InterlockedExchangeAddNoFence64 Effectue une addition atomique de deux valeurs 64 bits. L’opération est effectuée de manière atomique, mais sans utiliser de barrières mémoire
InterlockedIncrement Incrémente (augmente d’un) la valeur de la variable 32 bits spécifiée en tant qu’opération atomique.
InterlockedIncrementAcquire Incrémente (augmente d’un) la valeur de la variable 32 bits spécifiée en tant qu’opération atomique. L’opération est effectuée à l’aide de la sémantique d’ordre de la mémoire d’acquisition.
InterlockedIncrementRelease Incrémente (augmente d’un) la valeur de la variable 32 bits spécifiée en tant qu’opération atomique. L’opération est effectuée à l’aide de la sémantique d’ordre de la mémoire de mise en production.
InterlockedIncrementNoFence Incrémente (augmente d’un) la valeur de la variable 32 bits spécifiée en tant qu’opération atomique. L’opération est effectuée de manière atomique, mais sans utiliser de barrières mémoire
InterlockedIncrement16 Incrémente (augmente d’un) la valeur de la variable 16 bits spécifiée en tant qu’opération atomique
InterlockedIncrement16Acquire Incrémente (augmente d’un) la valeur de la variable 16 bits spécifiée en tant qu’opération atomique. L’opération est effectuée à l’aide de la sémantique d’acquisition de l’ordre de la mémoire
InterlockedIncrement16Release Incrémente (augmente d’un) la valeur de la variable 16 bits spécifiée en tant qu’opération atomique. L’opération est effectuée à l’aide de la sémantique d’ordre de la mémoire de mise en production
InterlockedIncrement16NoFence Incrémente (augmente d’un) la valeur de la variable 16 bits spécifiée en tant qu’opération atomique. L’opération est effectuée de manière atomique, mais sans utiliser de barrières mémoire
InterlockedIncrement64 Incrémente (augmente d’un) la valeur de la variable 64 bits spécifiée en tant qu’opération atomique.
InterlockedIncrementAcquire64 Incrémente (augmente d’un) la valeur de la variable 64 bits spécifiée en tant qu’opération atomique. L’opération est effectuée à l’aide de la sémantique d’ordre de la mémoire d’acquisition.
InterlockedIncrementRelease64 Incrémente (augmente d’un) la valeur de la variable 64 bits spécifiée en tant qu’opération atomique. L’opération est effectuée à l’aide de la sémantique d’ordre de la mémoire de mise en production.
InterlockedIncrementNoFence64 Incrémente (augmente d’un) la valeur de la variable 64 bits spécifiée en tant qu’opération atomique. L’opération est effectuée de manière atomique, mais sans utiliser de barrières mémoire
InterlockedOr Effectue une opération OR atomique sur les valeurs LONG spécifiées.
InterlockedOrAcquire Effectue une opération OR atomique sur les valeurs LONG spécifiées. L’opération est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire.
InterlockedOrRelease Effectue une opération OU atomique sur les valeurs LONG spécifiées. L’opération est effectuée avec la sémantique de classement de la mémoire de mise en production.
InterlockedOrNoFence Effectue une opération OU atomique sur les valeurs LONG spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedOr8 Effectue une opération OU atomique sur les valeurs char spécifiées.
InterlockedOr8Acquire Effectue une opération OU atomique sur les valeurs char spécifiées. L’opération est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire.
InterlockedOr8Release Effectue une opération OU atomique sur les valeurs char spécifiées. L’opération est effectuée avec la sémantique de classement de la mémoire de mise en production.
InterlockedOr8NoFence Effectue une opération OU atomique 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 OU atomique sur les valeurs SHORT spécifiées.
InterlockedOr16Acquire Effectue une opération OU atomique sur les valeurs SHORT spécifiées. L’opération est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire.
InterlockedOr16Release Effectue une opération OU atomique sur les valeurs SHORT spécifiées. L’opération est effectuée avec la sémantique de classement de la mémoire de mise en production.
InterlockedOr16NoFence Effectue une opération OU atomique sur les valeurs SHORT spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedOr64 Effectue une opération OR atomique sur les valeurs LONGLONG spécifiées.
InterlockedOr64Acquire Effectue une opération OR atomique sur les valeurs LONGLONG spécifiées. L’opération est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire.
InterlockedOr64Release Effectue une opération OR atomique sur les valeurs LONGLONG spécifiées. L’opération est effectuée avec la sémantique de classement de la mémoire de mise en production.
InterlockedOr64NoFence Effectue une opération OR atomique 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 XOR atomique sur les valeurs LONG spécifiées.
InterlockedXorAcquire Effectue une opération XOR atomique sur les valeurs LONG spécifiées. L’opération est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire.
InterlockedXorRelease Effectue une opération XOR atomique sur les valeurs LONG spécifiées. L’opération est effectuée avec la sémantique de classement de la mémoire de mise en production.
InterlockedXorNoFence Effectue une opération XOR atomique sur les valeurs LONG spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedXor8 Effectue une opération XOR atomique sur les valeurs char spécifiées.
InterlockedXor8Acquire Effectue une opération XOR atomique sur les valeurs char spécifiées. L’opération est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire.
InterlockedXor8Release Effectue une opération XOR atomique sur les valeurs char spécifiées. L’opération est effectuée avec la sémantique de classement de la mémoire de mise en production.
InterlockedXor8NoFence Effectue une opération XOR atomique 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 XOR atomique sur les valeurs SHORT spécifiées.
InterlockedXor16Acquire Effectue une opération XOR atomique sur les valeurs SHORT spécifiées. L’opération est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire.
InterlockedXor16Release Effectue une opération XOR atomique sur les valeurs SHORT spécifiées. L’opération est effectuée avec la sémantique de classement de la mémoire de mise en production.
InterlockedXor16NoFence Effectue une opération XOR atomique sur les valeurs SHORT spécifiées. L’opération est effectuée atomiquement, mais sans utiliser de barrières de mémoire
InterlockedXor64 Effectue une opération XOR atomique sur les valeurs LONGLONG spécifiées.
InterlockedXor64Acquire Effectue une opération XOR atomique sur les valeurs LONGLONG spécifiées. L’opération est effectuée avec la sémantique d’acquisition de l’ordre de la mémoire.
InterlockedXor64Release Effectue une opération XOR atomique sur les valeurs LONGLONG spécifiées. L’opération est effectuée avec la sémantique de classement de la mémoire de mise en production.
InterlockedXor64NoFence Effectue une opération XOR atomique 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 à 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és

Fonction d’espace de noms privé Description
AddSIDToBoundaryDescriptor Ajoute un nouvel identificateur de sécurité (SID) au descripteur de limite spécifié.
AddIntegrityLabelToBoundaryDescriptor Ajoute un nouvel identificateur de sécurité obligatoire (SID) 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 sémaphores

Fonction sémaphore Description
CreateSemaphore Crée ou ouvre un objet sémaphore nommé ou non nommé.
CreateSemaphoreEx Crée ou ouvre un objet sémaphore nommé ou sans nom et retourne un handle à l’objet.
OpenSemaphore Ouvre un objet sémaphore nommé existant.
ReleaseSemaphore Augmente le nombre de l’objet sémaphore spécifié d’une quantité spécifiée.

 

Fonctions de liste liées séparément

Fonction de liste liée séparément Description
InitializesListHead Initialise la tête d’une liste liée séparément.
InterlockedFlushSList Vide la liste entière des éléments d’une liste liée unique.
InterlockedPopEntrySList Supprime un élément de l’avant d’une liste liée unique.
InterlockedPushEntrySList Insère un élément à l’avant d’une liste liée unique.
InterlockedPushListSList Insère une liste liée séparément à l’avant d’une autre liste liée séparément.
InterlockedPushListSListEx Insère une liste liée séparément à l’avant d’une autre liste liée séparément. 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 liée séparément.
RtlInitializesListHead Initialise la tête d’une liste liée séparément. Les applications doivent appeler InitializeSListHead à la place.
RtlInterlockedFlushsList Vide la liste entière des éléments d’une liste liée unique. Les applications doivent appeler InterlockedFlushSList à la place.
RtlInterlockedPopEntrysList Supprime un élément de l’avant d’une liste liée unique. Les applications doivent appeler InterlockedPopEntrySList à la place.
RtlInterlockedPushEntrysList Insère un élément à l’avant d’une liste liée 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 de barrière de synchronisation Description
DeleteSynchronizationBarrier Supprime une barrière de synchronisation.
EnterSynchronizationBarrier Entre une barrière de synchronisation et attend que le nombre approprié de threads se rencontre à la barrière.
InitializeSynchronizationBarrier Initialise une nouvelle barrière de synchronisation.

 

Fonctions du minuteur-file d’attente

Fonction minuteur-file d’attente Description
ChangeTimerQueueTimer Mises à jour un minuteur-file d’attente.
CreateTimerQueue Crée une file d’attente pour les minuteurs.
CreateTimerQueueTimer Crée un minuteur-file d’attente.
DeleteTimerQueue Supprime une file d’attente du minuteur.
DeleteTimerQueueEx Supprime une file d’attente du minuteur.
DeleteTimerQueueTimer Annule un minuteur-file d’attente.

 

Fonctions d’attente

Fonction Wait Description
MsgWaitForMultipleObjects Attend qu’un ou tous les objets spécifiés soient à l’état signalé ou que l’intervalle de délai d’attente s’écoule. 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’achèvement 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’expiration s’écoule. Le tableau d’objets peut inclure des objets d’événement d’entrée.
RegisterWaitForSingleObject Indique à un thread d’attente dans le pool de threads d’attendre sur l’objet.
SignalObjectAndWait Signale un objet et attend un autre objet en une seule opération.
DésinscrireWait Annule une opération d’attente inscrite.
UnregisterWaitEx Annule une opération d’attente inscrite.
WaitForMultipleObjects Attend qu’un ou tous les objets spécifiés soient à l’état signalé ou que l’intervalle de délai d’attente s’écoule.
WaitForMultipleObjectsEx Attend qu’un ou tous les objets spécifiés soient à l’état signalé, qu’une routine d’achèvement 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 s’écoule.
WaitForSingleObject Attend que l’objet spécifié soit dans l’état signalé ou que l’intervalle de délai d’attente s’écoule.
WaitForSingleObjectEx Attend que l’objet spécifié soit à l’état signalé, qu’une routine d’achèvement 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 s’écoule.
WaitOnAddress Attend que la valeur à l’adresse spécifiée change.
WaitOrTimerCallback Fonction définie par l’application qui sert d’adresse de départ pour un rappel de minuteur ou un rappel d’attente inscrit.
WakeByAddressAll Réveille tous les threads en attente de modification de la valeur d’une adresse.
WakeByAddressSingle Réveille un thread en attente de modification de la valeur d’une adresse.

 

Fonctions de minuteur d’attente

Fonction waitable-timer Description
CancelWaitableTimer Définit le minuteur d’attente spécifié à l’état inactif.
CreateWaitableTimer Crée ou ouvre un objet minuteur pouvant être attendu.
CreateWaitableTimerEx Crée ou ouvre un objet de minuteur d’attente et retourne un handle à l’objet .
OpenWaitableTimer Ouvre un objet de minuteur d’attente nommé existant.
SetWaitableTimer Active le minuteur d’attente spécifié.
SetWaitableTimerEx Active le minuteur d’attente spécifié et fournit des informations de contexte pour le minuteur. .
MinuteurAPCProc Routine d’achèvement du minuteur défini par l’application utilisée avec la fonction SetWaitableTimer .