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 字节原子比较和交换操作时使用。

返回值

备注

此宏包装 InterlockedCompareExchange64ExfInterlockedCompareExchange64 并假定 LONGLONG 类型的返回值。

ExInterlockedCompareExchange64 测试并可能替换给定变量的值。 对于大多数基础微处理器,此例程由编译器内联实现,以作为原子操作执行。 如果使用旋转锁,则只能在非分页参数上安全地使用此例程。

如果 DestinationComparand 不相等, 则 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 任何级别 (请参阅“备注”部分)

另请参阅

InterlockedCompareExchange

InterlockedExchange

InterlockedExchangeAdd