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 |