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

Ninguno

Observaciones

El autor de la llamada de NdisInterlockedAddUlong debe proporcionar almacenamiento residente para el bloqueo de número, que se debe inicializar con la función NdisAllocateSpinLock antes de la llamada inicial a NdisInterlockedAddUlong.

El valor SpinLock que se pasa al NdisInterlockedAddUlong función 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 giro.

NdisInterlockedAddUlong eleva irQL a DISPATCH_LEVEL cuando adquiere el bloqueo de giro 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 Valor
cliente mínimo admitido Compatible con los controladores NDIS 6.0 y NDIS 5.1 (consulte NdisInterlockedAddUlong (NDIS 5.1)) en Windows Vista. Compatible con los controladores NDIS 5.1 (consulte NdisInterlockedAddUlong (NDIS 5.1)) en Windows XP.
de la plataforma de destino de Universal
encabezado de ndis.h (incluya Ndis.h)
biblioteca de Ndis.lib
irQL Cualquier nivel

Consulte también

NdisAcquireSpinLock

NdisAllocateSpinLock

NdisReleaseSpinLock

NdisRetrieveUlong

NdisStoreUlong