Macro ExInterlockedCompareExchange64 (wdm.h)
La routine ExInterlockedCompareExchange64 confronta una variabile integer con un'altra e, se sono uguali, imposta la prima variabile su un valore fornito dal chiamante.
void ExInterlockedCompareExchange64(
[in, out] Destination,
[in] Exchange,
Comperand,
[in] Lock
);
[in, out] Destination
Puntatore a un numero intero che verrà confrontato ed eventualmente sostituito.
[in] Exchange
Puntatore a un numero intero che sostituirà quello in corrispondenza di Destination se il confronto restituisce l'uguaglianza.
Comperand
Puntatore a un numero intero con cui verrà confrontato il valore in corrispondenza del destinazione.
[in] Lock
Puntatore a un blocco di selezione allocato dal chiamante utilizzato se il sistema host non supporta un'operazione atomica di confronto e scambio a 8 byte.
Nessuno
Questa macro esegue il wrapping InterlockedCompareExchange64 o ExfInterlockedCompareExchange64 e presuppone il valore restituito del tipo LONGLONG.
exInterlockedCompareExchange64 test e, possibilmente, sostituisce il valore di una determinata variabile. Per la maggior parte dei microprocessori sottostanti, questa routine viene implementata inline dal compilatore per l'esecuzione come operazione atomica. Se viene utilizzato un blocco di selezione, questa routine può essere utilizzata solo in modo sicuro su parametri non di pagina.
Se il di destinazione e comparand sono diversi, exInterlockedCompareExchange64 restituisce semplicemente il valore di Destination.
ExInterlockedCompareExchange64 è atomico solo rispetto ad altre chiamate (ad esempio) InterlockedXxx.
I chiamanti di ExInterlockedCompareExchange64 possono essere eseguiti in qualsiasi IRQL. Lo spazio di archiviazione per il parametro Destination, Comparand e parametro exchange e le voci dell'elenco devono essere residenti in tutti gli IRQL.
Requisito | Valore |
---|---|
client minimo supportato | Disponibile a partire da Windows 2000. |
piattaforma di destinazione | Universale |
intestazione | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
libreria | NtosKrnl.lib |
dll | NtosKrnl.exe |
IRQL | Qualsiasi livello (vedere la sezione Osservazioni) |