次の方法で共有


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