Compartir a través de


Macro ExInterlockedCompareExchange64 (wdm.h)

El ExInterlockedCompareExchange64 rutina compara una variable entera con otra y, si son iguales, establece la primera variable en un valor proporcionado por el autor de la llamada.

Sintaxis

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

Parámetros

[in, out] Destination

Puntero a un entero que se comparará y posiblemente se reemplazará.

[in] Exchange

Puntero a un entero que reemplazará el de Destino si la comparación da como resultado la igualdad.

Comperand

Puntero a un entero con el que se comparará el valor en Destino.

[in] Lock

Puntero a un bloqueo de número de llamada asignado por el autor de la llamada que se usa si el sistema host no admite una operación atómica de comparación e intercambio de 8 bytes.

Valor devuelto

Ninguno

Observaciones

Esta macro encapsula interlockedCompareExchange64 o exfInterlockedCompareExchange64 y supone el valor devuelto del tipo LONGLONG.

pruebas ExInterlockedCompareExchange64 y, posiblemente, reemplaza el valor de una variable determinada. Para la mayoría de los microprocesadores subyacentes, el compilador implementa esta rutina en línea para ejecutarse como una operación atómica. Si se usa un bloqueo de número, esta rutina solo se puede usar de forma segura en parámetros no paginados.

Si el de destino de y Comparand no son iguales, ExInterlockedCompareExchange64 simplemente devuelve el valor de Destination.

ExInterlockedCompareExchange64 solo es atómica con respecto a otras llamadas de (Ex)InterlockedXxx.

Los autores de llamadas de exInterlockedCompareExchange64 se pueden ejecutar en cualquier IRQL. El almacenamiento del parámetro Destination, Comparand y Exchange y las entradas de lista deben estar residentes en todos los IRQL.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible a partir de Windows 2000.
de la plataforma de destino de Universal
encabezado de wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL Cualquier nivel (consulte la sección Comentarios)

Consulte también

interlockedCompareExchange

interlockedExchange

InterlockedExchangeAdd