Freigeben über


NdisInterlockedAddUlong-Makro (ndis.h)

Die NdisInterlockedAddUlong--Funktion fügt einem bestimmten ganzzahligen Wert ohne Vorzeichen als atomischen Vorgang einen unsignierten Longwert hinzu, wobei eine vom Aufrufer bereitgestellte Drehsperre 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 bei Addend hinzugefügt werden soll.

[in] _SpinLock

Ein Zeiger auf eine aufrufer-initialisierte Drehsperre.

Rückgabewert

Nichts

Bemerkungen

Der Aufrufer von NdisInterlockedAddUlong- muss einen residenten Speicher für die Drehsperre bereitstellen, der mit der NdisAllocateSpinLock-Funktion vor dem anfänglichen Aufruf von NdisInterlockedAddUlonginitialisiert werden muss.

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

NdisInterlockedAddUlong löst die IRQL auf DISPATCH_LEVEL aus, wenn die angegebene Drehsperre abgerufen wird, und stellt die ursprüngliche IRQL wieder her, bevor das Steuerelement zurückgegeben wird. Folglich kann jede Treiberfunktion, die NdisInterlockedAddUlong- aufruft, nicht seitenfähiger Code sein.

Anforderungen

Anforderung Wert
mindestens unterstützte 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- Universal
Header- ndis.h (include Ndis.h)
Library Ndis.lib
IRQL- Beliebige Ebene

Siehe auch

NdisAcquireSpinLock

NdisAllocateSpinLock

NdisReleaseSpinLock-

NdisRetrieveUlong

NdisStoreUlong-