ExInterlockedCompareExchange64 宏 (wdm.h)

ExInterlockedCompareExchange64 例程将一个整数变量与另一个整数变量进行比较,如果它们相等,请将第一个变量设置为调用方提供的值。

语法

void ExInterlockedCompareExchange64(
  [in, out]  Destination,
  [in]       Exchange,
             Comperand,
  [in]       Lock
);

参数

[in, out] Destination

指向要比较并可能替换的整数的指针。

[in] Exchange

指向整数的指针,如果比较结果相等,则会替换目标 处的整数。

Comperand

指向要比较 目标 的值的整数的指针。

[in] Lock

指向调用方分配的旋转锁的指针,如果主机系统不支持 8 字节原子比较和交换作,则使用该锁。

返回值

没有

言论

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

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

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

另请参阅

InterlockedCompareExchange

InterlockedExchange

InterlockedExchangeAdd