InterlockedExchangePointer 関数 (wdm.h)
InterlockedExchangePointer ルーチンは、ポインターを新しい値に設定するアトミック操作を実行します。
構文
PVOID InterlockedExchangePointer(
[in, out] PVOID volatile *Target,
[in, optional] PVOID Value
);
パラメーター
[in, out] Target
PVOID 値へのポインター。 ルーチン (*ターゲット) を Valueに設定します。
[in, optional] Value
(*ターゲット) を設定する PVOID 値を指定します。
戻り値
InterlockedExchangePointer は、*Target (つまり、ルーチンへのエントリでのこのポインターの値) にあるポインターの元の値を返します。
備考
InterlockedExchangePointer は、複数のスレッドで共有されているポインター変数の更新を同期する高速でアトミックな方法を提供します。
InterlockedExchangePointer は速度を目的として設計されており、通常はコンパイラによってインラインで実装されます。 InterlockedExchangePointer は、他の InterlockedXxx 呼び出しに関してのみアトミックです。 スピン ロックを使用せず、ページング可能なデータで安全に使用できます。
Target パラメーターは、パフォーマンスを向上させるために、システムの種類に応じて 32 ビットまたは 64 ビットの境界に配置する必要があります。
InterlockedExchangePointer 呼び出しは、他の InterlockedXxx 呼び出しに関してのみアトミックです。
キャッシュされていないメモリでは、インターロックされた操作を使用できません。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 以降で使用できます。 |
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | wdm.h (Wdm.h、Ntddk.h、Ntifs.h、ミニポート h を含む) |
IRQL | 任意のレベル |
関連項目
InterlockedCompareExchange の
InterlockedCompareExchangePointer の
InterlockedExchange の