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 |