Função InterlockedExchange (miniport.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 ao 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 ele é mais rápido e eficiente.

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 chamadasXxx 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 miniport.h (incluem 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