ExInterlockedCompareExchange64-Makro (wdm.h)
Die ExInterlockedCompareExchange64- Routine vergleicht eine ganzzahlige Variable mit einer anderen und legt, falls sie gleich sind, die erste Variable auf einen vom Aufrufer bereitgestellten Wert fest.
Syntax
void ExInterlockedCompareExchange64(
[in, out] Destination,
[in] Exchange,
Comperand,
[in] Lock
);
Parameter
[in, out] Destination
Ein Zeiger auf eine ganze Zahl, die verglichen und möglicherweise ersetzt wird.
[in] Exchange
Ein Zeiger auf eine ganze Zahl, die die zahl bei Destination ersetzt, wenn der Vergleich zu Gleichheit führt.
Comperand
Ein Zeiger auf eine ganze Zahl, mit der der Wert bei Ziel- verglichen wird.
[in] Lock
Ein Zeiger auf eine vom Anrufer zugewiesene Spin-Lock, die verwendet wird, wenn das Hostsystem keinen 8-Byte-Atomabgleich-und-Austauschvorgang unterstützt.
Rückgabewert
Nichts
Bemerkungen
Dieses Makro umschließt InterlockedCompareExchange64 oder ExfInterlockedCompareExchange64 und geht vom Rückgabewert des Typs LONGLONG aus.
ExInterlockedCompareExchange64 Tests und ersetzt ggf. den Wert einer bestimmten Variablen. Für die meisten zugrunde liegenden Mikroprozessoren wird diese Routine vom Compiler inline implementiert, um als atomische Operation auszuführen. Wenn eine Drehsperre verwendet wird, kann diese Routine nur sicher für nicht seitenseitige Parameter verwendet werden.
Wenn die Destination und Comparand ungleich sind, gibt ExInterlockedCompareExchange64 einfach den Wert Destinationzurück.
ExInterlockedCompareExchange64- ist nur in Bezug auf andere (Ex)InterlockedXxx Aufrufe atomar.
Aufrufer von ExInterlockedCompareExchange64- können bei jedem IRQL ausgeführt werden. Der Speicher für den Parameter Destination, Comparand und Exchange und die Listeneinträge müssen auf allen IRQLs gespeichert sein.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Ab Windows 2000 verfügbar. |
Zielplattform- | Universal |
Header- | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | Beliebige Ebene (siehe Abschnitt "Hinweise") |