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