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.
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
InterlockedExchangePointerAcquire
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de