exInterlockedCompareExchange64 宏 (wdm.h)
ExInterlockedCompareExchange64 例程将一个整数变量与另一个整数变量进行比较,如果它们相等,请将第一个变量设置为调用方提供的值。
语法
void ExInterlockedCompareExchange64(
[in, out] Destination,
[in] Exchange,
Comperand,
[in] Lock
);
参数
[in, out] Destination
指向将进行比较并可能替换的整数的指针。
[in] Exchange
指向整数的指针,如果比较结果相等,该整数将替换 Destination 处的整数。
Comperand
指向一个整数的指针, Destination 处的值将与该整数进行比较。
[in] Lock
指向调用方分配的旋转锁的指针,在主机系统不支持 8 字节原子比较和交换操作时使用。
返回值
无
备注
此宏包装 InterlockedCompareExchange64 或 ExfInterlockedCompareExchange64 并假定 LONGLONG 类型的返回值。
ExInterlockedCompareExchange64 测试并可能替换给定变量的值。 对于大多数基础微处理器,此例程由编译器内联实现,以作为原子操作执行。 如果使用旋转锁,则只能在非分页参数上安全地使用此例程。
如果 Destination 和 Comparand 不相等, 则 ExInterlockedCompareExchange64 仅返回 Destination 的值。
ExInterlockedCompareExchange64 仅针对其他 (Ex) InterlockedXxx 调用是原子的。
ExInterlockedCompareExchange64 的调用方可以在任何 IRQL 上运行。 Destination、Comparand 和 Exchange 参数的存储以及列表条目必须驻留在所有 ICL 中。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows 2000 开始可用。 |
目标平台 | 通用 |
标头 | wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任何级别 (请参阅“备注”部分) |