Condividi tramite


Funzione InterlockedExchange (miniport.h)

La routine InterlockedExchange imposta una variabile integer su un determinato valore come operazione atomica.

Sintassi

LONG InterlockedExchange(
  [in, out] LONG volatile *Target,
  [in]      LONG          Value
);

Parametri

[in, out] Target

Puntatore a una variabile da impostare sul valore fornito come operazione atomica.

[in] Value

Specifica il valore in cui verrà impostata la variabile.

Valore restituito

InterlockedExchange restituisce il valore della variabile in Target quando si è verificata la chiamata.

Commenti

È consigliabile usare InterlockedExchange anziché ExInterlockedExchangeUlong, perché è sia più veloce che più efficiente.

InterlockedExchange viene implementato inline dal compilatore quando appropriato e possibile. Non richiede un blocco di rotazione e può quindi essere usato in modo sicuro nei dati di paging.

Una chiamata alla routine InterlockedExchange è 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 Universale
Intestazione miniport.h (include Wdm.h, Ntddk.h, Ntifs.h, Miniport.h)
Libreria OneCoreUAP.lib in Windows 10
IRQL Qualsiasi livello

Vedi anche

ExInterlockedAddLargeInteger

ExInterlockedAddUlong

InterlockedDecrement

InterlockedIncrement