NdisInterlockedAddUlong-Makro (ndis.h)

Die NdisInterlockedAddUlong-Funktion fügt einer angegebenen ganzzahligen Zahl ohne Vorzeichen einen wert ohne Vorzeichen als atomaren Vorgang hinzu, wobei eine vom Aufrufer bereitgestellte Spin-Sperre verwendet wird, um den Zugriff auf die ganzzahlige Variable zu synchronisieren.

Syntax

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

Parameter

[in] _Addend

Ein Zeiger auf die Variable, für die der Wert durch den angegebenen Inkrement angepasst werden soll.

[in] _Increment

Der Wert, der unter Addend hinzugefügt werden soll.

[in] _SpinLock

Ein Zeiger auf eine aufruferinitialisierte Spinsperre.

Rückgabewert

Keine

Bemerkungen

Der Aufrufer von NdisInterlockedAddUlong muss einen residenten Speicher für die Spinsperre bereitstellen, die mit der NdisAllocateSpinLock-Funktion initialisiert werden muss, bevor NdisInterlockedAddUlong aufgerufen wird.

Der SpinLock-Wert , der an die NdisInterlockedAddUlong-Funktion übergeben wird, wird verwendet, um sicherzustellen, dass der Zusatz zur Variablen am Addend-Parameter in Bezug auf alle anderen Vorgänge für dieselbe Variable, die mit derselben Drehsperre synchronisiert wird, atomar ist.

NdisInterlockedAddUlong hebt die IRQL auf DISPATCH_LEVEL an, wenn die angegebene Drehsperre abgerufen wird, und stellt den ursprünglichen IRQL wieder her, bevor die Steuerung zurückgegeben wird. Folglich kann jede Treiberfunktion, die NdisInterlockedAddUlong aufruft , kein auslagerungsfähiger Code sein.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt für NDIS 6.0- und NDIS 5.1-Treiber (siehe NdisInterlockedAddUlong (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe NdisInterlockedAddUlong (NDIS 5.1)) in Windows XP.
Zielplattform Universell
Header ndis.h (einschließlich Ndis.h)
Bibliothek Ndis.lib
IRQL Beliebige Ebene

Weitere Informationen

NdisAcquireSpinLock

NdisAllocateSpinLock

NdisReleaseSpinLock

NdisRetrieveUlong

NdisStoreUlong