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 (*Target) a la dirección que es el valor del parámetro Value y devuelve el valor anterior del parámetro Target .

[in] Value

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

Valor devuelto

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

Comentarios

Esta función copia la dirección que se pasa como segundo parámetro a la primera y devuelve la dirección original de la primera.

En un sistema de 64 bits, los parámetros son de 64 bits y el parámetro Target debe estar alineado 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 cerca) para asegurarse de que las operaciones de memoria se completan en orden.

Sistemas basados en Itanium: En el caso de las aplicaciones críticas para el rendimiento, use InterlockedExchangePointerAcquire en su lugar.

Nota Esta función se admite en sistemas basados en Windows RT.
 

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado winnt.h (incluya Windows.h)

Consulte también

Acceso a variables interbloqueados

InterlockedCompareExchange

InterlockedExchange

InterlockedExchange16

InterlockedExchange16Acquire

InterlockedExchange16NoFence

InterlockedExchange64

InterlockedExchange8

InterlockedExchangeAcquire

InterlockedExchangeAcquire64

InterlockedExchangeAdd

InterlockedExchangeNoFence

InterlockedExchangeNoFence64

InterlockedExchangePointerAcquire

InterlockedExchangePointerNoFence

InterlockedExchangeSubtract

Funciones de sincronización