Compartir a través de


Macro ExInterlockedCompareExchange64 (wdm.h)

La rutina ExInterlockedCompareExchange64 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 Destination .

[in] Lock

Puntero a un bloqueo de número 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

None

Observaciones

Esta macro encapsula InterlockedCompareExchange64 o ExfInterlockedCompareExchange64 y asume el valor devuelto del tipo LONGLONG.

ExInterlockedCompareExchange64 prueba 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 Destination yComparand no son iguales, ExInterlockedCompareExchange64 simplemente devuelve el valor de Destination.

ExInterlockedCompareExchange64 solo es atómico con respecto a otras llamadas Xxx interbloqueadas (Ex).InterlockedXxx .

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

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows 2000.
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL Cualquier nivel (consulte la sección Comentarios)

Consulte también

InterlockedCompareExchange

InterlockedExchange

InterlockedExchangeAdd