Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die InterlockedCompareExchange Routine führt einen atomischen Vorgang aus, der den Von Destination mit dem Wert von Comparandvergleicht.
Syntax
LONG InterlockedCompareExchange(
[in, out] LONG volatile *Destination,
LONG ExChange,
LONG Comperand
);
Parameter
[in, out] Destination
Ein Zeiger auf den Eingabewert, der mit dem Wert von Comparandverglichen wird.
ExChange
Gibt den Ausgabewert an, auf den Destination verweist, wenn der von Destination auf den Wert von Comparandverweist.
Comperand
Gibt den Wert an, der mit dem Eingabewert verglichen wird, auf den durch Destinationverwiesen wird.
Rückgabewert
InterlockedCompareExchange gibt den ursprünglichen Wert von *Destinationzurück.
Bemerkungen
Wenn Comparand- gleich *Ziel-ist, wird *Ziel- auf Exchange-festgelegt. Andernfalls ist *Ziel- unverändert.
InterlockedCompareExchange bietet eine schnelle, atomare Möglichkeit, das Testen und Aktualisieren einer Variablen zu synchronisieren, die von mehreren Threads gemeinsam genutzt wird. Wenn der von Destination verweisende Eingabewert dem Wert Comparandentspricht, wird der Ausgabewert Ziel- auf den Wert Exchange-festgelegt.
InterlockedCompareExchange ist für Geschwindigkeit ausgelegt und wird in der Regel von einem Compiler inline implementiert. InterlockedCompareExchange ist nur in Bezug auf andere InterlockedXxx Aufrufe atomar. Es verwendet keine Drehsperre und kann auf seitenfähigen Daten sicher verwendet werden.
Interlocked-Vorgänge können nicht für nicht zwischengespeicherten Arbeitsspeicher verwendet werden.
Anforderungen
| Anforderung | Wert |
|---|---|
| mindestens unterstützte Client- | Ab Windows 2000 verfügbar. |
| Zielplattform- | Universal |
| Header- | miniport.h (include Wdm.h, Ntddk.h, Ntifs.h, Miniport.h) |
| Library | OneCoreUAP.lib unter Windows 10 |
| IRQL- | Beliebige Ebene |
Siehe auch
ExInterlockedCompareExchange64-