Partager via


Fonction InterlockedExchangeAdd (miniport.h)

La routine InterlockedExchangeAdd ajoute une valeur à un entier donné en tant qu’opération atomique et retourne la valeur d’origine de l’entier donné.

Syntaxe

LONG InterlockedExchangeAdd(
  [in, out] LONG volatile *Addend,
  [in]      LONG          Value
);

Paramètres

[in, out] Addend

Pointeur vers une variable entière.

[in] Value

Spécifie la valeur à ajouter à Addend.

Valeur retournée

InterlockedExchangeAdd retourne la valeur d’origine de la variable Addend lorsque l’appel s’est produit.

Remarques

InterlockedExchangeAdd doit être utilisé au lieu d’ExInterlockedAddUlong , car il est à la fois plus rapide et plus efficace.

InterlockedExchangeAdd est implémenté en ligne par le compilateur lorsque cela est approprié et possible. Il ne nécessite pas de verrou de rotation et peut donc être utilisé en toute sécurité sur les données paginables.

InterlockedExchangeAdd est atomique uniquement par rapport aux autres appels Xxx verrouillés.

Les opérations verrouillées ne peuvent pas être utilisées sur la mémoire non mise en cache.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 2000.
Plateforme cible Universal
En-tête miniport.h (incluent Wdm.h, Ntddk.h, Ntifs.h, Miniport.h)
Bibliothèque OneCoreUAP.lib sur Windows 10
IRQL N’importe quel niveau

Voir aussi

ExInterlockedAddLargeInteger

ExInterlockedAddUlong

InterlockedDecrement

InterlockedIncrement