Função InterlockedExchangePointer (miniport.h)

A rotina InterlockedExchangePointer executa uma operação atômica que define um ponteiro para um novo valor.

Sintaxe

PVOID InterlockedExchangePointer(
  [in, out]      PVOID volatile *Target,
  [in, optional] PVOID          Value
);

Parâmetros

[in, out] Target

Um ponteiro para um valor PVOID. A rotina define (*Target) como Value.

[in, optional] Value

Especifica o valor PVOID para o qual definir (*Destino).

Retornar valor

InterlockedExchangePointer retorna o valor original do ponteiro em *Target (ou seja, o valor desse ponteiro na entrada para a rotina).

Comentários

O InterlockedExchangePointer fornece uma maneira rápida e atômica de sincronizar a atualização de uma variável de ponteiro que é compartilhada por vários threads.

InterlockedExchangePointer foi projetado para velocidade e, normalmente, é implementado embutido por um compilador. InterlockedExchangePointer é atômico apenas em relação a outras chamadas Xxx interlocked. Ele não usa um bloqueio de rotação e pode ser usado com segurança em dados pagináveis.

O parâmetro Target deve ser alinhado em um limite de 32 bits ou 64 bits, dependendo do tipo de sistema, para melhorar o desempenho.

Uma chamada para InterlockedExchangePointer é 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 Área de Trabalho
Cabeçalho miniport.h (inclua Wdm.h, Ntddk.h, Ntifs.h, Miniport.h)
IRQL Qualquer nível

Confira também

Interlockedcompareexchange

InterlockedCompareExchangePointer

InterlockedExchange