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 |