次の方法で共有


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

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

戻り値

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

注釈

VideoPortInterlockedExchange を使用すると、複数プロセッサ システムでの DMA の一般的なバッファー競合を防ぐことができます。

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

要件

要件
サポートされている最小のクライアント Windows 2000 以降のバージョンの Windows オペレーティング システムで使用できます。
対象プラットフォーム デスクトップ
Header video.h (Video.h を含む)
Library Videoprt.lib
[DLL] Videoprt.sys
IRQL 任意のレベル

こちらもご覧ください

VideoPortGetCommonBuffer

VideoPortInterlockedDecrement

VideoPortInterlockedIncrement