Partager via


Macro NdisInterlockedAddUlong (ndis.h)

La fonction NdisInterlockedAddUlong ajoute une valeur longue non signée à un entier non signé donné en tant qu’opération atomique, en utilisant un verrou de rotation 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 l’incrément donné .

[in] _Increment

Valeur à ajouter à celle dans Addend .

[in] _SpinLock

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

Valeur de retour

None

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 passée à la fonction NdisInterlockedAddUlong est utilisée pour garantir que l’ajout à la variable au niveau du paramètre Addend est atomique par rapport à toutes les autres opérations sur la même variable qui se synchronisent avec le même verrou de rotation.

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

Configuration requise

Condition requise Valeur
Client minimal 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 Universal
En-tête ndis.h (inclure Ndis.h)
Bibliothèque Ndis.lib
IRQL N’importe quel niveau

Voir aussi

NdisAcquireSpinLock

NdisAllocateSpinLock

NdisReleaseSpinLock

NdisRetrieveUlong

NdisStoreUlong