Compartilhar via


Macro ExInterlockedCompareExchange64 (wdm.h)

A rotina ExInterlockedCompareExchange64 compara uma variável de inteiro com outra e, se forem iguais, define a primeira variável como um valor fornecido pelo chamador.

Sintaxe

void ExInterlockedCompareExchange64(
  [in, out]  Destination,
  [in]       Exchange,
             Comperand,
  [in]       Lock
);

Parâmetros

[in, out] Destination

Um ponteiro para um inteiro que será comparado e possivelmente substituído.

[in] Exchange

Um ponteiro para um inteiro que substituirá aquele em Destino se a comparação resultar em igualdade.

Comperand

Um ponteiro para um inteiro com o qual o valor em Destination será comparado.

[in] Lock

Um ponteiro para um spin-lock alocado pelo chamador que será usado se o sistema host não oferecer suporte a uma operação atômica de comparação e troca de 8 bytes.

Retornar valor

Nenhum

Comentários

Essa macro encapsula InterlockedCompareExchange64 ou ExfInterlockedCompareExchange64 e pressupõe o valor retornado do tipo LONGLONG.

ExInterlockedCompareExchange64 testa e, possivelmente, substitui o valor de uma determinada variável. Para a maioria dos microprocessadores subjacentes, essa rotina é implementada embutida pelo compilador para ser executada como uma operação atômica. Se um bloqueio de rotação for usado, essa rotina só poderá ser usada com segurança em parâmetros nãopagados.

Se Destination eComparand forem diferentes, ExInterlockedCompareExchange64 simplesmente retornará o valor de Destination.

ExInterlockedCompareExchange64 é atômico apenas em relação a outras chamadasXxx (Ex)Interlocked.

Os chamadores de ExInterlockedCompareExchange64 podem estar em execução em qualquer IRQL. O armazenamento para o parâmetro Destination, Comparand e Exchange e as entradas de lista devem ser residentes em todas as IRQLs.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows 2000.
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Qualquer nível (consulte a seção Comentários)

Confira também

Interlockedcompareexchange

InterlockedExchange

Interlockedexchangeadd