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 等しく設定されます。 それ以外の場合、*Destination は変更されません。
InterlockedCompareExchange は、複数のスレッドで共有される変数のテストと更新を同期する高速でアトミックな方法を提供します。 Destination が指す入力値が Comperandの値と等しい場合、Destination の出力値は Exchange の値設定されます。
InterlockedCompareExchange は速度を目的として設計されており、通常はコンパイラによってインラインで実装されます。 InterlockedCompareExchange は、他の InterlockedXxx 呼び出しに関してのみアトミックです。 スピン ロックを使用せず、ページング可能なデータで安全に使用できます。
キャッシュされていないメモリでは、インターロックされた操作を使用できません。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 以降で使用できます。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | wdm.h (Wdm.h、Ntddk.h、Ntifs.h、ミニポート h を含む) |
ライブラリ | Windows 10 の OneCoreUAP.lib |
IRQL | 任意のレベル |
関連項目
ExInterlockedCompareExchange64 の
InterlockedCompareExchangePointer の
InterlockedExchange の
InterlockedExchangePointer の