InterlockedExchangePointer 函数 (miniport.h)
InterlockedExchangePointer 例程执行原子作,用于设置指向新值的指针。
语法
PVOID InterlockedExchangePointer(
[in, out] PVOID volatile *Target,
[in, optional] PVOID Value
);
参数
[in, out] Target
指向 PVOID 值的指针。 例程集 (*Target) Value。
[in, optional] Value
指定要设置的 PVOID 值(*目标)。
返回值
InterlockedExchangePointer 返回位于 *Target(即此指针在进入例程时的值)的原始值。
言论
InterlockedExchangePointer 提供了一种快速的原子方式,用于同步更新多个线程共享的指针变量。
InterlockedExchangePointer 专为速度而设计,通常由编译器内联实现。 InterlockedExchangePointer 仅在其他 InterlockedXxx 调用方面是原子的。 它不使用旋转锁,可以安全地用于可分页数据。
Target 参数应在 32 位或 64 位边界上对齐,具体取决于系统类型,以提高性能。
对 InterlockedExchangePointer 的调用仅在其他 InterlockedXxx 调用方面是原子的。
不能对非缓存内存使用互锁作。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows 2000 开始可用。 |
目标平台 | 桌面 |
标头 | miniport.h (包括 Wdm.h、Ntddk.h、Ntifs.h、Miniport.h) |
IRQL | 任何级别 |