Partager via


Macro NdisInterlockedAddUlong (ndis.h)

La fonction NdisInterlockedAddUlong ajoute une valeur longue non signée à un entier non signé donné comme opération atomique, à l’aide d’un verrou de spin fourni par l’appelant pour synchroniser l’accès à la variable entière.

Syntaxe

void NdisInterlockedAddUlong(
  [in]  _Addend,
  [in]  _Increment,
  [in]  _SpinLock
);

Paramètres

[in] _Addend

Pointeur vers la variable pour laquelle la valeur doit être ajustée par le Incrémenter donné .

[in] _Increment

Valeur à ajouter à celle-ci à Addend .

[in] _SpinLock

Pointeur vers un verrou de spin initialisé par l’appelant.

Valeur de retour

Aucun

Remarques

L’appelant de NdisInterlockedAddUlong doit fournir un stockage résident pour le verrou de rotation, qui doit être initialisé avec la fonction NdisAllocateSpinLock avant l’appel initial à NdisInterlockedAddUlong.

La valeur SpinLock transmise à la fonction NdisInterlockedAddUlong est utilisée pour garantir que l’ajout à la variable au paramètre Addend est atomique par rapport aux autres opérations sur la même variable qui se synchronisent avec le même verrou de rotation.

NdisInterlockedAddUlong déclenche l’IRQL à DISPATCH_LEVEL lorsqu’il acquiert le verrou de rotation donné et restaure l’IRQL d’origine avant de retourner le contrôle. Par conséquent, toute fonction de pilote qui appelle NdisInterlockedAddUlong ne peut pas être du code paginable.

Exigences

Exigence Valeur
client minimum pris en charge Pris en charge pour les pilotes NDIS 6.0 et NDIS 5.1 (voir NdisInterlockedAddUlong (NDIS 5.1)) dans Windows Vista. Pris en charge pour les pilotes NDIS 5.1 (voir NdisInterlockedAddUlong (NDIS 5.1)) dans Windows XP.
plateforme cible Universel
d’en-tête ndis.h (include Ndis.h)
bibliothèque Ndis.lib
IRQL N’importe quel niveau

Voir aussi

NdisAcquireSpinLock

NdisAllocateSpinLock

NdisReleaseSpinLock

NdisRetrieveUlong

NdisStoreUlong