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 di selezione 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 cui il valore deve essere modificato in base all'Incremento .

[in] _Increment

Valore da aggiungere a tale valore in Addend .

[in] _SpinLock

Puntatore a un blocco di selezione 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 selezione.

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

Fabbisogno

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

Vedere anche

NdisAcquireSpinLock

NdisAllocateSpinLock

NdisReleaseSpinLock

NdisRetrieveUlong

NdisStoreUlong