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.
Sintassi
void ExInterlockedCompareExchange64(
[in, out] Destination,
[in] Exchange,
Comperand,
[in] Lock
);
Parametri
[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 Destination se il confronto restituisce l'uguaglianza.
Comperand
Puntatore a un numero intero con cui verrà confrontato il valore in Destination .
[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.
Valore restituito
nessuno
Osservazioni
Questa macro esegue il wrapping di 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 rotazione, questa routine può essere utilizzata solo in modo sicuro su parametri non di pagina.
Se Destination e Comparand sono diversi, ExInterlockedCompareExchange64 restituisce semplicemente il valore destination.
ExInterlockedCompareExchange64 è atomico solo rispetto ad altre chiamate Xxx interlocked (Ex)InterlockedXxx .
I chiamanti di ExInterlockedCompareExchange64 possono essere in esecuzione in qualsiasi IRQL. Lo spazio di archiviazione per il parametro Destination, Comparand ed Exchange e le voci di elenco devono risiedere in tutti i file IRQL.
Requisiti
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) |