次の方法で共有


VideoPortInterlockedExchange 関数 (video.h)

VideoPortInterlockedExchange 関数は、ユーザー定義のロック変数を TRUE または FALSEにそれぞれ設定することで、メモリ ブロックをロックまたはロック解除します。 ロック変数の以前に保持されていた値を返します。

構文

VIDEOPORT_API LONG VideoPortInterlockedExchange(
  [in, out] IN OUT PLONG Target,
  [in]      IN LONG      Value
);

パラメーター

[in, out] Target

メモリ バッファーへのアクセスを制御するために使用されるユーザー定義ロック変数へのポインター。

[in] Value

メモリ バッファーをロックするかロック解除するかを示す、ターゲットに格納する値を指定します。 TRUE を使用してメモリ バッファーをロックし、FALSE してメモリ バッファーのロックを解除します。

戻り値

VideoPortInterlockedExchange は、関数呼び出しの前 Target が持っていた値を返します。

備考

VideoPortInterlockedExchange を使用して、複数プロセッサ システムでの DMA 共通バッファー競合を防ぐことができます。

バッファーの読み取りまたは書き込みを行わない場合、ロック変数の値は FALSE 必要があります。 Target パラメーターを TRUE に設定して VideoPortInterlockedExchange する後続の呼び出し 、ロック変数を TRUE にリセットし、その後、この関数は FALSE 返します。 バッファーがロックされ、他のスレッドによるアクセスが禁止されるようになりました。 バッファーに対する現在の操作が完了したら、Target パラメーターを FALSE に設定 VideoPortInterlockedExchange呼び出してバッファーのロックを解除します。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 以降のバージョンの Windows オペレーティング システムで使用できます。
ターゲット プラットフォーム デスクトップ
ヘッダー video.h (Video.h を含む)
ライブラリ Videoprt.lib
DLL Videoprt.sys
IRQL 任意のレベル

関連項目

VideoPortGetCommonBuffer する

VideoPortInterlockedDecrement

VideoPortInterlockedIncrement