InterlockedExchangePointer, fonction (winnt.h)
Échange atomiquement une paire d’adresses.
Syntaxe
PVOID InterlockedExchangePointer(
[in, out] PVOID volatile *Target,
[in] PVOID Value
);
Paramètres
[in, out] Target
Pointeur vers l’adresse à échanger. La fonction définit l’adresse pointée par le paramètre cible
[in] Value
Adresse à échanger avec l’adresse pointée par le paramètre cible
Valeur de retour
La fonction retourne l’adresse initiale pointée par le paramètre cible
Remarques
Cette fonction copie l’adresse passée en tant que deuxième paramètre au premier et retourne l’adresse d’origine du premier.
Sur un système 64 bits, les paramètres sont 64 bits et le paramètre Cible doit être aligné sur les limites 64 bits ; sinon, la fonction se comporte de façon imprévisible. Sur un système 32 bits, les paramètres sont 32 bits et le paramètre Cible doit être aligné sur les limites 32 bits.
Les fonctions interblocées fournissent un mécanisme simple pour synchroniser l’accès à une variable partagée par plusieurs threads. Cette fonction est atomique par rapport aux appels à d’autres fonctions interblocées.
Cette fonction est implémentée à l’aide d’une intrinsèque du compilateur dans la mesure du possible. Pour plus d’informations, consultez le fichier d’en-tête WinBase.h et _InterlockedExchangePointer.
Cette fonction génère une barrière de mémoire complète (ou clôture) pour vous assurer que les opérations de mémoire sont effectuées dans l’ordre.
systèmes Itanium : pour les applications critiques en matière de performances, utilisez InterlockedExchangePointerAcquire à la place.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows XP [applications de bureau | Applications UWP] |
serveur minimum pris en charge | Windows Server 2003 [applications de bureau | Applications UWP] |
plateforme cible | Windows |
d’en-tête | winnt.h (include Windows.h) |
Voir aussi
d’accès aux variables verrouillées
InterlockedExchangePointerAcquire