Funzione InterlockedCompareExchange (miniport.h)
La routine InterlockedCompareExchange esegue un'operazione atomica che confronta il valore di input a cui punta di destinazione 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 Destinazione.
Valore restituito
InterlockedCompareExchange restituisce il valore originale di *Destination.
Osservazioni
Se Comparand è 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 Comparand, 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 | miniport.h (include Wdm.h, Ntddk.h, Ntifs.h, Miniport.h) |
libreria | OneCoreUAP.lib in Windows 10 |
IRQL | Qualsiasi livello |
Vedere anche
ExInterlockedCompareExchange64