InterlockedCompareExchange, fonction (wdm.h)
La routine InterlockedCompareExchange effectue une opération atomique qui compare la valeur d’entrée pointée par destination avec la valeur de Comperand.
Syntaxe
LONG CDECL_NON_WVMPURE InterlockedCompareExchange(
[in, out] LONG volatile *Destination,
[in] LONG ExChange,
[in] LONG Comperand
);
Paramètres
[in, out] Destination
Pointeur vers la valeur d’entrée qui est comparée à la valeur de Comperand.
[in] ExChange
Spécifie la valeur de sortie pointée par Destination si la valeur d’entrée pointée par Destination est égale à la valeur de Comperand.
[in] Comperand
Spécifie la valeur qui est comparée à la valeur d’entrée pointée par Destination.
Valeur de retour
InterlockedCompareExchange retourne la valeur d’origine de *Destination.
Remarques
Si Comperand est égal à *de destination, * de destination est défini sur Exchange . Sinon, *destination n’est pas modifiée.
interlockedCompareExchange offre un moyen rapide et atomique de synchroniser les tests et la mise à jour d’une variable partagée par plusieurs threads. Si la valeur d’entrée pointée par Destination est égale à la valeur de Comperand, la valeur de sortie de Destination est définie sur la valeur de Exchange.
interlockedCompareExchange est conçu pour la vitesse et, généralement, est implémenté en ligne par un compilateur. interlockedCompareExchange n’est atomique que par rapport à d’autres appels interbloquésXxx. Il n’utilise pas de verrou de rotation et peut être utilisé en toute sécurité sur les données paginables.
Les opérations verrouillées ne peuvent pas être utilisées sur la mémoire non mise en cache.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible à partir de Windows 2000. |
plateforme cible | Universel |
d’en-tête | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Miniport.h) |
bibliothèque | OneCoreUAP.lib sur Windows 10 |
IRQL | N’importe quel niveau |
Voir aussi
ExInterlockedCompareExchange64