Freigeben über


InterlockedExchange-Funktion (miniport.h)

Die InterlockedExchange-Routine legt eine ganzzahlige Variable auf einen angegebenen Wert als atomaren Vorgang fest.

Syntax

LONG InterlockedExchange(
  [in, out] LONG volatile *Target,
  [in]      LONG          Value
);

Parameter

[in, out] Target

Ein Zeiger auf eine Variable, die auf den angegebenen Wert als atomarer Vorgang festgelegt werden soll.

[in] Value

Gibt den Wert an, auf den die Variable festgelegt wird.

Rückgabewert

InterlockedExchange gibt den Wert der Variablen bei Target zurück, wenn der Aufruf erfolgt ist.

Hinweise

InterlockedExchange sollte anstelle von ExInterlockedExchangeUlong verwendet werden, da es schneller und effizienter ist.

InterlockedExchange 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.

Ein Aufruf der InterlockedExchange-Routine 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