Fonctions de synchronisation
Les fonctions suivantes sont utilisées dans la synchronisation.
- Fonctions asynchrones
- Variables de condition et fonctions de verrouillage SRW
- Fonctions de section critiques
- Fonctions d’événement
- Fonctions d’initialisation à usage unique
- Fonctions verrouillées
- Fonctions Mutex
- Fonctions d’espace de noms privés
- Fonctions de sémaphore
- Fonctions de liste liées séparément
- Fonctions de barrière de synchronisation
- Fonctions du minuteur de file d’attente
- Fonctions d’attente
- Fonctions de minuteur d’attente
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 . |