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 |