_InterlockedExchangePointer の組み込み関数

[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 Blank topics are included as placeholders.]

Microsoft 固有の仕様 →

2 番目の引数として渡される第 1 に1 番目のアドレスをコピー元のアドレスを返す交換アトミック操作を実行します。

void * _InterlockedExchangePointer(
   void * volatile * Target,
   void * Value
);
void * _InterlockedExchangePointer_acq(
   void * volatile * Target,
   void * Value
);

パラメーター

  • [入力、出力] Target
    交換する値へのポインター。 関数のセット Value と戻り値に変更前の値。

  • [入力] Value
    値を交換する値は Target によってします。

戻り値

初期値が Target によってした関数の戻り値。

必要条件

組み込み

アーキテクチャ

_InterlockedExchangePointer

はx64

_InterlockedExchangePointer_acq

IPF

x86 アーキテクチャで**_InterlockedExchangePointer** です _InterlockedExchange を呼び出すマクロ 注意してください

ヘッダー ファイル <intrin.h>

解説

64 ビット システムではパラメーターが 64 ビットで64 ビットの境界に配置する必要があります。; そうしないと関数は失敗します。 32 ビット システムではパラメーターは 32 ビットで32 ビット境界上に配置する必要があります。

必要な機能が発生した場合はクリティカル セクションの先頭に次のように _InterlockedExchangePointer_acq を使用します。

を使用してセマンティクスを解放するとこの関数の各バージョンはありません。

これらの関数は読み書き可能メモリ バリアとして機能します。 詳細については_ReadWriteBarrier を参照してください。

これらのルーチンは組み込みとしてのみ使用できます。

参照

Reference

コンパイラ組み込み関数。

その他の技術情報

Conflicts with the x86 Compiler