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