InterlockedCompareExchange 函式 (wdm.h)
InterlockedCompareExchange 例程會執行不可部分完成的作業,此作業會比較 Destination 所指向的輸入值與 Comperand的值。
語法
LONG CDECL_NON_WVMPURE InterlockedCompareExchange(
[in, out] LONG volatile *Destination,
[in] LONG ExChange,
[in] LONG Comperand
);
參數
[in, out] Destination
與 Comperand比較之輸入值的指標。
[in] ExChange
如果 Destination 所指向的輸入值 等於 Comperand的值,則指定 destination 所指向的輸出值。
[in] Comperand
指定與 Destination所指向之輸入值比較的值。
傳回值
InterlockedCompareExchange 會傳回 *Destination的原始值。
言論
如果 Comperand 等於 *Destination,則 *Destination 會設定為等於 Exchange。 否則,*目的地 不會變更。
InterlockedCompareExchange 提供快速、不可部分完成的方式,同步處理多個線程共用之變數的測試與更新。 如果 destination 所指向的輸入值 等於 Comperand的值,則 destination 的輸出 值會設定為 Exchange的值。
InterlockedCompareExchange 是針對速度所設計,而且通常由編譯程式內嵌實作。 InterlockedCompareExchange 僅適用於其他 InterlockedXxx 呼叫。 它不會使用微調鎖定,而且可以在可分頁數據上安全地使用。
無法對非快取記憶體使用聯結作業。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 從 Windows 2000 開始提供。 |
目標平臺 | 普遍 |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h、Miniport.h) |
連結庫 | Windows 10 上的 OneCoreUAP.lib |
IRQL | 任何層級 |
另請參閱
ExInterlockedCompareExchange64