Função InterlockedExchangePointer (wdm.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 (*Destino) como Valor.
[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.
O InterlockedExchangePointer foi projetado para velocidade e, normalmente, é implementado embutido por um compilador. O 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 melhor desempenho.
Uma chamada para InterlockedExchangePointer é 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 | Área de Trabalho |
Cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Miniport.h) |
IRQL | Qualquer nível |