InterlockedCompareExchangePointer, fonction (miniport.h)
La routine InterlockedCompareExchangePointer effectue une opération atomique qui compare la valeur du pointeur d’entrée vers laquelle pointe destination avec la valeur de pointeur Comparand.
Syntaxe
PVOID InterlockedCompareExchangePointer(
[in, out] PVOID volatile *Destination,
[in] PVOID Exchange,
PVOID Comperand
);
Paramètres
[in, out] Destination
Pointeur vers une valeur PVOID. Si (*Destination) = Comparand, la routine définit (*Destination) sur exchange.
[in] Exchange
Spécifie la valeur PVOID à définir (*Destination) sur.
Comperand
Spécifie la valeur PVOID à comparer à (**Destination*).
Valeur de retour
InterlockedCompareExchangePointer retourne la valeur d’origine du pointeur à *destination (autrement dit, la valeur de ce pointeur à l’entrée de la routine).
Remarques
Si Comparand est égal à *de destination, *Destination est défini sur Exchange. Sinon, *destination n’est pas modifiée.
InterlockedCompareExchangePointer offre un moyen rapide et atomique de synchroniser les tests et la mise à jour d’une variable de pointeur partagée par plusieurs threads. Si la valeur d’entrée pointée par Destination est égale à la valeur de Comparand, la valeur pointée par Destination est définie sur la valeur de Exchange.
InterlockedCompareExchangePointer est conçu pour accélérer et, généralement, est implémenté en ligne par un compilateur. interlockedCompareExchangePointer n’est atomique que par rapport aux autres appels interblocageXxx. Il n’utilise pas de verrou de rotation et peut être utilisé en toute sécurité sur les données paginables.
La routine interlockedCompareExchangePointer n’est atomique que par rapport à d’autres appels interlockésXxx.
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 | Bureau |
d’en-tête | miniport.h (include Wdm.h, Ntddk.h, Ntifs.h, Miniport.h) |
IRQL | N’importe quel niveau |