ExInterlockedCompareExchange64-Makro (wdm.h)
Die ExInterlockedCompareExchange64-Routine vergleicht eine ganzzahlige Variable mit einer anderen und legt die erste Variable auf einen vom Aufrufer angegebenen 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 ganzzahlige Zahl, die bei Ziel ersetzt wird, wenn der Vergleich zu Gleichheit führt.
Comperand
Ein Zeiger auf eine ganze Zahl, mit der der Wert am Ziel verglichen wird.
[in] Lock
Ein Zeiger auf eine vom Aufrufer zugewiesene Spinsperre, die verwendet wird, wenn das Hostsystem keinen 8-Byte-Atomvergleichs- und Austauschvorgang unterstützt.
Rückgabewert
Keine
Bemerkungen
Dieses Makro umschließt InterlockedCompareExchange64 oder ExfInterlockedCompareExchange64 und übernimmt den Rückgabewert des Typs LONGLONG.
ExInterlockedCompareExchange64 testet und ersetzt möglicherweise den Wert einer bestimmten Variablen. Für die meisten zugrunde liegenden Mikroprozessoren wird diese Routine vom Compiler inline implementiert, um als atomarer Vorgang auszuführen. Wenn eine Spinsperre verwendet wird, kann diese Routine nur für nicht ausseitige Parameter sicher verwendet werden.
Wenn Destination und Comparand ungleich sind, gibt ExInterlockedCompareExchange64 einfach den Wert von Destination zurück.
ExInterlockedCompareExchange64 ist nur in Bezug auf andere (Ex)InterlockedXxx-Aufrufe atomar.
Aufrufer von ExInterlockedCompareExchange64 können in jedem IRQL ausgeführt werden. Der Speicher für den Parameter Destination, Comparand und Exchange sowie die Listeneinträge müssen an allen IRQLs ansässig sein.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar ab Windows 2000. |
Zielplattform | Universell |
Header | wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Beliebige Ebene (siehe Abschnitt Hinweise) |