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 |