Funzione InterlockedExchangePointer (miniport.h)
La routine InterlockedExchangePointer esegue un'operazione atomica che imposta un puntatore su 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 corrispondenza di *Target , ovvero il valore di questo puntatore all'ingresso alla routine.
Commenti
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 Xxx interlocked. 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 Xxx interlocked.
Le operazioni interlocked non possono essere usate nella memoria non memorizzata nella cache.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile a partire da Windows 2000. |
Piattaforma di destinazione | Desktop |
Intestazione | miniport.h (include Wdm.h, Ntddk.h, Ntifs.h, Miniport.h) |
IRQL | Qualsiasi livello |