InterlockedCompareExchangePointer 関数 (wdm.h)
InterlockedCompareExchangePointer ルーチンは、Destination が指す入力ポインター値とポインター値 Comperand を比較するアトミック操作を実行します。
構文
PVOID InterlockedCompareExchangePointer(
[in, out] PVOID volatile *Destination,
[in] PVOID Exchange,
[in] PVOID Comperand
);
パラメーター
[in, out] Destination
PVOID 値へのポインター。 (Destination) = Comperand の場合、ルーチンは (Destination) をに設定 Exchange。
[in] Exchange
設定する PVOID 値 (*変換先) を指定します。
[in] Comperand
(*Destination) と比較する PVOID 値を指定します。
戻り値
InterlockedCompareExchangePointer は、*Destination (ルーチンへのエントリ時にこのポインターの値) にポインターの元の値を返します。
解説
Comperand が Destination と等しい場合、Destination は同じ値にExchange。 それ以外の場合、*変換先 は変更されません。
InterlockedCompareExchangePointer は、複数のスレッドで共有されるポインター変数のテストと更新を同期する高速でアトミックな方法を提供します。 Destination が指す入力値が Comperand の値と等しい場合、Destination が指す値は、Exchange の値に設定されます。
InterlockedCompareExchangePointer は速度を目的として設計され、通常はコンパイラによってインラインで実装されます。 InterlockedCompareExchangePointer は、他の InterlockedXxx 呼び出しに関してだけアトミックです。 スピン ロックは使用されません。ページ可能なデータで安全に使用できます。
InterlockedCompareExchangePointer ルーチンは、他の InterlockedXxx 呼び出しに関してだけアトミックです。
インターロックされた操作は、キャッシュされていないメモリでは使用できません。
要件
| サポートされている最小のクライアント | Windows 2000 以降で使用できます。 |
| 対象プラットフォーム | デスクトップ |
| ヘッダー | wdm.h (Wdm.h、Ntddk.h、Ntifs.h、ミニポート.h を含む) |
| IRQL | 任意のレベル |
関連項目
フィードバック
フィードバックの送信と表示