Macro NdisInterlockedAddUlong (ndis.h)
La función NdisInterlockedAddUlong agrega un valor long sin signo a un entero sin signo determinado como una operación atómica, utilizando un bloqueo de número proporcionado por el autor de la llamada para sincronizar el acceso a la variable de entero.
Sintaxis
void NdisInterlockedAddUlong(
[in] _Addend,
[in] _Increment,
[in] _SpinLock
);
Parámetros
[in] _Addend
Puntero a la variable para la que el valor se va a ajustar mediante el incremento especificado.
[in] _Increment
Valor que se va a agregar a ese en Addend .
[in] _SpinLock
Puntero a un bloqueo de número inicializado por el autor de la llamada.
Valor devuelto
None
Observaciones
El autor de la llamada de NdisInterlockedAddUlong debe proporcionar almacenamiento residente para el bloqueo de número, que debe inicializarse con la función NdisAllocateSpinLock antes de la llamada inicial a NdisInterlockedAddUlong.
El valor SpinLock que se pasa a la función NdisInterlockedAddUlong se usa para asegurar que la adición a la variable en el parámetro Addend es atómica con respecto a cualquier otra operación en la misma variable que se sincronice con el mismo bloqueo de número.
NdisInterlockedAddUlong genera irQL para DISPATCH_LEVEL cuando adquiere el bloqueo de número especificado y restaura el IRQL original antes de devolver el control. Por lo tanto, cualquier función de controlador que llame a NdisInterlockedAddUlong no puede ser código paginable.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Compatible con los controladores NDIS 6.0 y NDIS 5.1 (consulte NdisInterlockedAddUlong (NDIS 5.1)) en Windows Vista. Compatible con controladores NDIS 5.1 (consulte NdisInterlockedAddUlong (NDIS 5.1)) en Windows XP. |
Plataforma de destino | Universal |
Encabezado | ndis.h (incluya Ndis.h) |
Library | Ndis.lib |
IRQL | Cualquier nivel |