_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 を参照してください。
これらのルーチンは組み込みとしてのみ使用できます。