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) |