共用方式為


ExInterlockedCompareExchange64 宏 (wdm.h)

ExInterlockedCompareExchange64 例程會比較一個整數變數與另一個整數變數,如果相等,請將第一個變數設定為呼叫端提供的值。

語法

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

參數

[in, out] Destination

要比較且可能取代之整數的指標。

[in] Exchange

如果比較結果相等,整數的指標將會取代 Destination 中的指標。

Comperand

要比較目的地值之整數的指標。

[in] Lock

如果主機系統不支援8位元組不可部分完成的比較和交換作業,則會使用呼叫端配置的微調鎖定指標。

傳回值

備註

這個宏會包裝 InterlockedCompareExchange64ExfInterlockedCompareExchange64 ,並假設 LONGLONG 類型的傳回值。

ExInterlockedCompareExchange64 測試,而且可能取代指定變數的值。 對於大部分的基礎處理器,編譯程式會內嵌實作此例程,以作為不可部分完成的作業來執行。 如果使用微調鎖定,此例程只能在非分頁參數上安全地使用。

如果 DestinationComparand 不相等, ExInterlockedCompareExchange64 只會傳回 Destination 的值。

ExInterlockedCompareExchange64 僅適用於其他 (Ex) InterlockedXxx 呼叫。

ExInterlockedCompareExchange64 的呼叫端可以在任何 IRQL 上執行。 Destination、Comparand 和 Exchange 參數和列表專案的記憶體必須位於所有 IRQL。

規格需求

需求
最低支援的用戶端 從 Windows 2000 開始提供。
目標平台 Universal
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL 任何層級 (請參閱一節)

另請參閱

InterlockedCompareExchange

InterlockedExchange

InterlockedExchangeAdd