Compartir a través de


Función InterlockedExchangePointer (winnt.h)

Intercambia de forma atómica un par de direcciones.

Sintaxis

PVOID InterlockedExchangePointer(
  [in, out] PVOID volatile *Target,
  [in]      PVOID          Value
);

Parámetros

[in, out] Target

Puntero a la dirección que se va a intercambiar. La función establece la dirección a la que apunta el parámetro Target () a la dirección que es el valor del parámetro Value y devuelve el valor anterior del parámetro Target de .

[in] Value

Dirección a la que se va a intercambiar la dirección a la que apunta el parámetro target de ().

Valor devuelto

La función devuelve la dirección inicial a la que apunta el parámetro Target.

Observaciones

Esta función copia la dirección que se pasa como segundo parámetro al primero y devuelve la dirección original del primero.

En un sistema de 64 bits, los parámetros son de 64 bits y el parámetro Target debe alinearse en límites de 64 bits; de lo contrario, la función se comportará de forma impredecible. En un sistema de 32 bits, los parámetros son de 32 bits y el parámetro Target debe alinearse en límites de 32 bits.

Las funciones interbloqueadas proporcionan un mecanismo sencillo para sincronizar el acceso a una variable compartida por varios subprocesos. Esta función es atómica con respecto a las llamadas a otras funciones interbloqueadas.

Esta función se implementa mediante un intrínseco del compilador siempre que sea posible. Para obtener más información, vea el archivo de encabezado WinBase.h y _InterlockedExchangePointer.

Esta función genera una barrera de memoria completa (o barrera) para asegurarse de que las operaciones de memoria se completan en orden.

sistemas basados en Itanium: Para aplicaciones críticas para el rendimiento, use interlockedExchangePointerAcquire en su lugar.

Nota Esta función es compatible con sistemas basados en Windows RT.
 

Requisitos

Requisito Valor
cliente mínimo admitido Windows XP [aplicaciones de escritorio | Aplicaciones para UWP]
servidor mínimo admitido Windows Server 2003 [aplicaciones de escritorio | Aplicaciones para UWP]
de la plataforma de destino de Windows
encabezado de winnt.h (incluya Windows.h)

Consulte también

de acceso a variables interbloqueadas

interlockedCompareExchange

interlockedExchange

interlockedExchange16

interlockedExchange16Acquire

interlockedExchange16NoFence

interlockedExchange64

interlockedExchange8

interlockedExchangeAcquire

interlockedExchangeAcquire64

InterlockedExchangeAdd

InterlockedExchangeNoFence

interlockedExchangeNoFence64

interlockedExchangePointerAcquire

InterlockedExchangePointerNoFence

interlockedExchangeSubtract

Funciones de sincronización de