Partager via


Fonction InterlockedExchangePointer (miniport.h)

La routine InterlockedExchangePointer effectue une opération atomique qui définit un pointeur vers 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. La routine définit (*Target) sur Valeur.

[in, optional] Value

Spécifie la valeur PVOID sur laquelle définir (*Target).

Valeur retournée

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

Remarques

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

InterlockedExchangePointer est conçu pour la vitesse et, généralement, est implémenté inline par un compilateur. InterlockedExchangePointer est atomique uniquement par rapport aux autres appels Xxx verrouillés. Il n’utilise pas de verrou tournant et peut être utilisé en toute sécurité sur des données paginables.

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

Un appel à InterlockedExchangePointer est atomique uniquement par rapport à d’autres appels Xxx verrouillés.

Les opérations verrouillées ne peuvent pas être utilisées sur la mémoire non mise en cache.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 2000.
Plateforme cible Desktop (Expérience utilisateur)
En-tête miniport.h (inclure Wdm.h, Ntddk.h, Ntifs.h, Miniport.h)
IRQL N’importe quel niveau

Voir aussi

InterlockedCompareExchange

InterlockedCompareExchangePointer

InterlockedExchange