Condividi tramite


Macro NdisInterlockedAddUlong (ndis.h)

La funzione NdisInterlockedAddUlong aggiunge un valore long senza segno a un determinato intero senza segno come operazione atomica, utilizzando un blocco spin fornito dal chiamante per sincronizzare l'accesso alla variabile integer.

Sintassi

void NdisInterlockedAddUlong(
  [in]  _Addend,
  [in]  _Increment,
  [in]  _SpinLock
);

Parametri

[in] _Addend

Puntatore alla variabile per la quale il valore deve essere regolato dall'elemento Increment specificato.

[in] _Increment

Valore da aggiungere a che in Addend .

[in] _SpinLock

Puntatore a un blocco spin inizializzato dal chiamante.

Valore restituito

nessuno

Osservazioni

Il chiamante di NdisInterlockedAddUlong deve fornire spazio di archiviazione residente per il blocco spin, che deve essere inizializzato con la funzione NdisAllocateSpinLock prima della chiamata iniziale a NdisInterlockedAddUlong.

Il valore SpinLock passato alla funzione NdisInterlockedAddUlong viene usato per garantire che l'aggiunta alla variabile nel parametro Addend sia atomica rispetto a qualsiasi altra operazione sulla stessa variabile che si sincronizza con lo stesso blocco di rotazione.

NdisInterlockedAddUlong genera irQL per DISPATCH_LEVEL quando acquisisce il blocco spin specificato e ripristina l'IRQL originale prima che restituisca il controllo. Di conseguenza, qualsiasi funzione driver che chiama NdisInterlockedAddUlong non può essere codice impaginabile.

Requisiti

Requisito Valore
Client minimo supportato Supportato per i driver NDIS 6.0 e NDIS 5.1 (vedere NdisInterlockedAddUlong (NDIS 5.1)) in Windows Vista. Supportato per i driver NDIS 5.1 (vedere NdisInterlockedAddUlong (NDIS 5.1)) in Windows XP.
Piattaforma di destinazione Universale
Intestazione ndis.h (include Ndis.h)
Libreria Ndis.lib
IRQL Qualsiasi livello

Vedi anche

NdisAcquireSpinLock

NdisAllocateSpinLock

NdisReleaseSpinLock

NdisRetrieveUlong

NdisStoreUlong