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 |