Función InterlockedCompareExchange (wdm.h)
La rutina interlockedCompareExchange realiza una operación atómica que compara el valor de entrada al que apunta Destination con el valor de Comperand.
Sintaxis
LONG CDECL_NON_WVMPURE InterlockedCompareExchange(
[in, out] LONG volatile *Destination,
[in] LONG ExChange,
[in] LONG Comperand
);
Parámetros
[in, out] Destination
Puntero al valor de entrada que se compara con el valor de Comperand.
[in] ExChange
Especifica el valor de salida al que apunta Destino si el valor de entrada al que apunta Destination es igual al valor de Comperand.
[in] Comperand
Especifica el valor que se compara con el valor de entrada al que apunta Destino.
Valor devuelto
interlockedCompareExchange devuelve el valor original de *Destination.
Observaciones
Si Comperand es igual a *Destino, * destination se establece en igual Exchange. De lo contrario, * de destino no cambia.
interlockedCompareExchange proporciona una manera rápida y atómica de sincronizar las pruebas y la actualización de una variable compartida por varios subprocesos. Si el valor de entrada al que apunta Destination es igual al valor de Comperand, el valor de salida de Destination se establece en el valor de Exchange.
interlockedCompareExchange está diseñado para velocidad y, normalmente, un compilador implementa en línea. InterlockedCompareExchange es atómica solo con respecto a otras llamadas de interbloqueadasXxx. No usa un bloqueo de número y se puede usar de forma segura en datos paginables.
Las operaciones interbloqueadas no se pueden usar en memoria no almacenada en caché.
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, Miniport.h) |
biblioteca de | OneCoreUAP.lib en Windows 10 |
irQL | Cualquier nivel |
Consulte también
ExInterlockedCompareExchange64