Funzione InterlockedCompareExchange (wdm.h)
La routine InterlockedCompareExchange esegue un'operazione atomica che confronta il valore di input a cui punta Destination con il valore di Comperand.
Sintassi
LONG CDECL_NON_WVMPURE InterlockedCompareExchange(
[in, out] LONG volatile *Destination,
[in] LONG ExChange,
[in] LONG Comperand
);
Parametri
[in, out] Destination
Puntatore al valore di input confrontato con il valore di Comperand.
[in] ExChange
Specifica il valore di output a cui punta Destination se il valore di input a cui punta Destination è uguale al valore di Comperand.
[in] Comperand
Specifica il valore confrontato con il valore di input a cui punta Destinazione.
Valore restituito
InterlockedCompareExchange restituisce il valore originale di *Destination.
Osservazioni
Se Comperand è uguale a *Destination, *Destination è impostato su uguale Exchange. In caso contrario, * di destinazione non è modificato.
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 Comperand, il valore di output di Destination viene impostato sul valore di Exchange.
la InterlockedCompareExchange è progettata per la velocità e, in genere, viene implementata inline da un compilatore. InterlockedCompareExchange è atomico solo rispetto ad altre chiamate InterlockedXxx. 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.
Fabbisogno
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, Miniport.h) |
libreria | OneCoreUAP.lib in Windows 10 |
IRQL | Qualsiasi livello |
Vedere anche
ExInterlockedCompareExchange64