InterlockedExchangePointer 函数 (wdm.h)

InterlockedExchangePointer 例程执行原子操作,将指针设置为新值。

语法

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

参数

[in, out] Target

指向 PVOID 值的指针。 例程将 (*Target) 设置为 Value

[in, optional] Value

指定要 (*Target) 设置为的 PVOID 值。

返回值

InterlockedExchangePointer 在 *Target (返回指针的原始值,即此指针在例程) 入口处的值。

注解

InterlockedExchangePointer 提供了一种快速的原子方式来同步更新多个线程共享的指针变量。

InterlockedExchangePointer 专为速度而设计,通常由编译器内联实现。 InterlockedExchangePointer 仅在其他 InterlockedXxx 调用方面是原子的。 它不使用旋转锁,可以安全地用于可分页数据。

Target 参数应在 32 位或 64 位边界上对齐,具体取决于系统类型,以提高性能。

仅就其他 Interlocked Xxx 调用而言,对 InterlockedExchangePointer 的调用是原子

互锁操作不能用于非缓存内存。

要求

要求
最低受支持的客户端 从 Windows 2000 开始可用。
目标平台 桌面
标头 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h、Miniport.h)
IRQL 任何级别

另请参阅

InterlockedCompareExchange

InterlockedCompareExchangePointer

InterlockedExchange