Freigeben über


InterlockedExchangePointer-Funktion (winnt.h)

Atomisch austauscht ein Adresspaar.

Syntax

PVOID InterlockedExchangePointer(
  [in, out] PVOID volatile *Target,
  [in]      PVOID          Value
);

Parameter

[in, out] Target

Ein Zeiger auf die Adresse, die ausgetauscht werden soll. Die Funktion legt die Adresse fest, auf die der parameter Target (*Target) verweist, auf die Adresse, die der Wert des Value-Parameters ist, und gibt den vorherigen Wert des parameters Target zurück.

[in] Value

Die Adresse, die mit der Adresse ausgetauscht werden soll, auf die der parameter Target (*Target) verweist.

Rückgabewert

Die Funktion gibt die ursprüngliche Adresse zurück, auf die der parameter Target verweist.

Bemerkungen

Diese Funktion kopiert die Adresse, die als zweiter Parameter an die erste übergeben wird, und gibt die ursprüngliche Adresse des ersten zurück.

Bei einem 64-Bit-System sind die Parameter 64 Bit, und der parameter Target muss an 64-Bit-Begrenzungen ausgerichtet werden; andernfalls verhält sich die Funktion unvorhersehbar. Bei einem 32-Bit-System sind die Parameter 32 Bit, und der parameter Target muss an 32-Bit-Begrenzungen ausgerichtet werden.

Die verriegelten Funktionen bieten einen einfachen Mechanismus zum Synchronisieren des Zugriffs auf eine Variable, die von mehreren Threads gemeinsam genutzt wird. Diese Funktion ist atomar in Bezug auf Aufrufe anderer verzahnter Funktionen.

Diese Funktion wird mithilfe eines systeminternen Compilers implementiert. Weitere Informationen finden Sie in der WinBase.h-Headerdatei und _InterlockedExchangePointer.

Diese Funktion generiert eine vollständige Speicherbarriere (oder einen Zaun), um sicherzustellen, dass Speichervorgänge in der Reihenfolge abgeschlossen werden.

Itanium-basierte Systeme: Verwenden Sie für leistungskritische Anwendungen stattdessen InterlockedExchangePointerAcquire.

Hinweis Diese Funktion wird auf Windows RT-basierten Systemen unterstützt.
 

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows XP [Desktop-Apps | UWP-Apps]
mindestens unterstützte Server- Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform- Fenster
Header- winnt.h (enthalten Windows.h)

Siehe auch

Interlocked Variable Access

InterlockedCompareExchange

InterlockedExchange-

InterlockedExchange16-

InterlockedExchange16Acquire-

InterlockedExchange16NoFence-

InterlockedExchange64-

InterlockedExchange8-

InterlockedExchangeAcquire

InterlockedExchangeAcquire64-

InterlockedExchangeAdd-

InterlockedExchangeNoFence-

InterlockedExchangeNoFence64-

InterlockedExchangePointerAcquire-

InterlockedExchangePointerNoFence-

InterlockedExchangeSubtract-

Synchronisierungsfunktionen