Funzione InterlockedCompareExchange (miniport.h)
La routine InterlockedCompareExchange esegue un'operazione atomica che confronta il valore di input a cui punta Destination con il valore di Comparand.
Sintassi
LONG InterlockedCompareExchange(
[in, out] LONG volatile *Destination,
LONG ExChange,
LONG Comperand
);
Parametri
[in, out] Destination
Puntatore al valore di input confrontato con il valore di Comparand.
ExChange
Specifica il valore di output a cui punta Destination se il valore di input a cui punta Destination è uguale al valore di Comparand.
Comperand
Specifica il valore confrontato con il valore di input a cui punta Destination.
Valore restituito
InterlockedCompareExchange restituisce il valore originale di *Destination.
Commenti
Se Comparand è uguale a *Destination, *Destination è impostato su Uguale a Exchange. In caso contrario, *Destination è invariato.
InterlockedCompareExchange offre un modo rapido e atomico per sincronizzare i test e l'aggiornamento di una variabile condivisa da più thread. Se il valore di input a cui punta Destination è uguale al valore di Comparand, il valore di output di Destination viene impostato sul valore di Exchange.
InterlockedCompareExchange è progettato per la velocità e, in genere, viene implementato inline da un compilatore. InterlockedCompareExchange è atomico solo rispetto ad altre chiamate Xxx interlocked. Non usa un blocco di rotazione e può essere usato in modo sicuro nei dati di paging.
Le operazioni interlocked non possono essere usate nella memoria non memorizzata nella cache.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile a partire da Windows 2000. |
Piattaforma di destinazione | Universale |
Intestazione | miniport.h (include Wdm.h, Ntddk.h, Ntifs.h, Miniport.h) |
Libreria | OneCoreUAP.lib in Windows 10 |
IRQL | Qualsiasi livello |
Vedi anche
ExInterlockedCompareExchange64