Función InterlockedExchangePointer (miniport.h)
La rutina InterlockedExchangePointer realiza una operación atómica que establece un puntero a un nuevo valor.
Sintaxis
PVOID InterlockedExchangePointer(
[in, out] PVOID volatile *Target,
[in, optional] PVOID Value
);
Parámetros
[in, out] Target
Puntero a un valor PVOID. La rutina establece (*Destino) en Value.
[in, optional] Value
Especifica el valor PVOID en el que se va a establecer (*Destino).
Valor devuelto
InterlockedExchangePointer devuelve el valor original del puntero en *Target (es decir, el valor de este puntero en la entrada a la rutina).
Comentarios
InterlockedExchangePointer proporciona una forma atómica rápida de sincronizar la actualización de una variable de puntero compartida por varios subprocesos.
InterlockedExchangePointer está diseñado para la velocidad y, normalmente, se implementa en línea mediante un compilador. InterlockedExchangePointer solo es atómica con respecto a otras llamadas Xxx interbloqueadas. No usa un bloqueo de número y se puede usar de forma segura en datos paginables.
El parámetro Target debe alinearse en un límite de 32 o 64 bits, según el tipo de sistema, para mejorar el rendimiento.
Una llamada a InterlockedExchangePointer solo es atómica con respecto a otras llamadas Xxx interbloqueadas.
Las operaciones interbloqueadas no se pueden usar en memoria no almacenada en caché.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible a partir de Windows 2000. |
Plataforma de destino | Escritorio |
Encabezado | miniport.h (include Wdm.h, Ntddk.h, Ntifs.h, Miniport.h) |
IRQL | Cualquier nivel |
Consulte también
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