Freigeben über


InterlockedExchangeAdd-Funktion (miniport.h)

Die InterlockedExchangeAdd-Routine fügt einer angegebenen ganzen Zahl einen Wert als atomaren Vorgang hinzu und gibt den ursprünglichen Wert der angegebenen ganzen Zahl zurück.

Syntax

LONG InterlockedExchangeAdd(
  [in, out] LONG volatile *Addend,
  [in]      LONG          Value
);

Parameter

[in, out] Addend

Ein Zeiger auf eine ganzzahlige Variable.

[in] Value

Gibt den Wert an, der addend hinzugefügt werden soll.

Rückgabewert

InterlockedExchangeAdd gibt den ursprünglichen Wert der Addend-Variablen zurück, wenn der Aufruf aufgetreten ist.

Hinweise

InterlockedExchangeAdd sollte anstelle von ExInterlockedAddUlong verwendet werden, da es schneller und effizienter ist.

InterlockedExchangeAdd wird vom Compiler inline implementiert, wenn dies sinnvoll und möglich ist. Es erfordert keine Spinsperre und kann daher sicher für auslagerungsfähige Daten verwendet werden.

InterlockedExchangeAdd ist nur in Bezug auf andere interlockedXxx-Aufrufe atomar.

Ineinander verriegelte Vorgänge können nicht für nicht zwischengespeicherten Arbeitsspeicher verwendet werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 2000.
Zielplattform Universell
Header miniport.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h, Miniport.h)
Bibliothek OneCoreUAP.lib auf Windows 10
IRQL Beliebige Ebene

Weitere Informationen

ExInterlockedAddLargeInteger

ExInterlockedAddUlong

InterlockedDecrement

InterlockedIncrement