Share via


InterlockedExchangePointer-Funktion (winnt.h)

Ein Adresspaar wird atomar ausgetauscht.

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 Target-Parameter (*Target) verweist, auf die Adresse, die dem Wert des Value-Parameters entspricht, und gibt den vorherigen Wert des Target-Parameters zurück.

[in] Value

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

Rückgabewert

Die Funktion gibt die anfängliche Adresse zurück, auf die der Target-Parameter verweist.

Hinweise

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

In einem 64-Bit-System sind die Parameter 64 Bits, und der Target-Parameter muss an 64-Bit-Grenzen ausgerichtet werden. Andernfalls verhält sich die Funktion unvorhersehbar. In einem 32-Bit-System sind die Parameter 32 Bits, und der Target-Parameter muss an 32-Bit-Grenzen ausgerichtet werden.

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

Diese Funktion wird nach Möglichkeit mithilfe eines intrinsischen 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 richtigen 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
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile winnt.h (windows.h einschließen)

Weitere Informationen

Ineinandergreifen des Variablenzugriffs

InterlockedCompareExchange

InterlockedExchange

InterlockedExchange16

InterlockedExchange16Acquire

InterlockedExchange16NoFence

InterlockedExchange64

InterlockedExchange8

InterlockedExchangeAcquire

InterlockedExchangeAcquire64

InterlockedExchangeAdd

InterlockedExchangeNoFence

InterlockedExchangeNoFence64

InterlockedExchangePointerAcquire

InterlockedExchangePointerNoFence

InterlockedExchangeSubtract

Synchronisierungsfunktionen