Condividi tramite


Funzione InterlockedExchangePointer (wdm.h)

La routine InterlockedExchangePointer esegue un'operazione atomica che imposta un puntatore a un nuovo valore.

Sintassi

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

Parametri

[in, out] Target

Puntatore a un valore PVOID. La routine imposta (*Target) su Value.

[in, optional] Value

Specifica il valore PVOID su cui impostare (*Target).

Valore restituito

InterlockedExchangePointer restituisce il valore originale del puntatore in * target (ovvero il valore di questo puntatore all'ingresso alla routine).

Osservazioni

InterlockedExchangePointer offre un modo rapido e atomico per sincronizzare l'aggiornamento di una variabile puntatore condivisa da più thread.

InterlockedExchangePointer è progettato per la velocità e, in genere, viene implementato inline da un compilatore. InterlockedExchangePointer è atomico solo rispetto ad altre chiamate di InterlockedXxx. Non usa un blocco di rotazione e può essere usato in modo sicuro nei dati di paging.

Il parametro target deve essere allineato su un limite a 32 bit o a 64 bit, a seconda del tipo di sistema, per ottenere prestazioni migliori.

Una chiamata a InterlockedExchangePointer è atomica solo rispetto ad altre chiamate InterlockedXxx.

Le operazioni interlocked non possono essere usate nella memoria non memorizzata nella cache.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile a partire da Windows 2000.
piattaforma di destinazione Desktop
intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Miniport.h)
IRQL Qualsiasi livello

Vedere anche

InterlockedCompareExchange

InterlockedCompareExchangePointer

interlockedExchange