共用方式為


InterlockedCompareExchangePointer 函式 (miniport.h)

InterlockedCompareExchangePointer 例程會執行不可部分完成的作業,此作業會比較 Destination 所指向的輸入指標值與 Compareand指標值。

語法

PVOID InterlockedCompareExchangePointer(
  [in, out] PVOID volatile *Destination,
  [in]      PVOID          Exchange,
            PVOID          Comperand
);

參數

[in, out] Destination

PVOID 值的指標。 如果 (*Destination) = Comparand,則例程會將 [目的地] 設定為 Exchange

[in] Exchange

指定要將 [目的地] 設定為 的 PVOID 值。

Comperand

指定要與 (**Destination*) 比較的 PVOID 值。

傳回值

InterlockedCompareExchangePointer 傳回位於 *Destination 的指標原始值(也就是此指標在例程專案的值)。

言論

如果 Comparand 等於 *Destination,則 *Destination 會設定為等於 Exchange。 否則,*目的地 不會變更。

InterlockedCompareExchangePointer 提供快速、不可部分完成的方式,以同步處理多個線程共用的指標變數測試和更新。 如果 Destination 所指向的輸入值 等於 Comparand的值,Destination 所指向的值會設定為 Exchange的值。

InterlockedCompareExchangePointer 是針對速度所設計,而且通常由編譯程式內嵌實作。 InterlockedCompareExchangePointer 僅適用於其他 InterlockedXxx 呼叫。 它不會使用微調鎖定,而且可以在可分頁數據上安全地使用。

InterlockedCompareExchangePointer 例程只有在其他 InterlockedXxx 呼叫時才不可部分完成。

無法對非快取記憶體使用聯結作業。

要求

要求 價值
最低支援的用戶端 從 Windows 2000 開始提供。
目標平臺 桌面
標頭 miniport.h (包括 Wdm.h、Ntddk.h、Ntifs.h、Miniport.h)
IRQL 任何層級

另請參閱

InterlockedCompareExchange

InterlockedExchange

InterlockedExchangePointer