Função InterlockedExchange (wdm.h)

A rotina InterlockedExchange define uma variável de inteiro como um determinado valor como uma operação atômica.

Sintaxe

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

Parâmetros

[in, out] Target

Um ponteiro para uma variável a ser definida como o Valor fornecido como uma operação atômica.

[in] Value

Especifica o valor para o qual a variável será definida.

Retornar valor

InterlockedExchange retorna o valor da variável em Target quando a chamada ocorreu.

Comentários

O InterlockedExchange deve ser usado em vez de ExInterlockedExchangeUlong, pois é mais rápido e eficiente.

O InterlockedExchange é implementado embutido pelo compilador quando apropriado e possível. Ele não requer um bloqueio de rotação e, portanto, pode ser usado com segurança em dados pagináveis.

Uma chamada para a rotina InterlockedExchange é atômica apenas em relação a outras chamadas Xxx interlocked.

As operações interligadas não podem ser usadas na memória não armazenada em cache.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows 2000.
Plataforma de Destino Universal
Cabeçalho wdm.h (inclua Wdm.h, Ntddk.h, Ntifs.h, Miniport.h)
Biblioteca OneCoreUAP.lib no Windows 10
IRQL Qualquer nível

Confira também

ExInterlockedAddLargeInteger

ExInterlockedAddUlong

Interlockeddecrement

Interlockedincrement