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 |