Partager via


InterlockedExchangePointer, fonction (wdm.h)

La routine InterlockedExchangePointer effectue une opération atomique qui définit un pointeur sur une nouvelle valeur.

Syntaxe

PVOID InterlockedExchangePointer(
  [in, out]      PVOID volatile *Target,
  [in, optional] PVOID          Value
);

Paramètres

[in, out] Target

Pointeur vers une valeur PVOID. Les ensembles de routines (*Cible) sur Valeur.

[in, optional] Value

Spécifie la valeur PVOID à définir (*Cible) sur.

Valeur de retour

InterlockedExchangePointer retourne la valeur d’origine du pointeur à * cible (autrement dit, la valeur de ce pointeur à l’entrée de la routine).

Remarques

interlockedExchangePointer offre un moyen atomique rapide de synchroniser la mise à jour d’une variable de pointeur partagée par plusieurs threads.

interlockedExchangePointer est conçu pour la vitesse et, généralement, est implémenté en ligne par un compilateur. InterlockedExchangePointer n’est atomique que par rapport aux autres appels interblocagesXxx. Il n’utilise pas de verrou de rotation et peut être utilisé en toute sécurité sur les données paginables.

Le paramètre cible doit être aligné sur une limite 32 bits ou 64 bits, selon le type de système, pour de meilleures performances.

Un appel à InterlockedExchangePointer n’est atomique que par rapport aux autres appels InterlockedXxx.

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 wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Miniport.h)
IRQL N’importe quel niveau

Voir aussi

InterlockedCompareExchange

InterlockedCompareExchangePointer

interlockedExchange