Compartir a través de


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

Consulte también

NdisAcquireSpinLock

NdisAllocateSpinLock

NdisReleaseSpinLock

NdisRetrieveUlong

NdisStoreUlong