次の方法で共有


IMFVirtualCamera::CreateSyncSemaphore メソッド (mfvirtualcamera.h)

セマフォを有効または無効にする IKsControl::KsEvent メソッドのラッパー。

構文

HRESULT CreateSyncSemaphore(
  REFGUID             kseventSet,
  ULONG               kseventId,
  ULONG               kseventFlags,
  HANDLE              semaphoreHandle,
  LONG                semaphoreAdjustment,
  IMFCameraSyncObject **cameraSyncObject
);

パラメーター

kseventSet

KSEVENT を表す GUID 。フィールドを設定 します。

kseventId

KSEVENT.Id フィールドを表す ULONG。

kseventFlags

KSEVENT を表すビット単位またはビット単位のフラグのセット 。フラグ フィールド。

semaphoreHandle

KSEVENTDATA を表すハンドル。SemaphoreHandle.Semaphore フィールド。

semaphoreAdjustment

KSEVENTDATA を表す調整値 。SemaphoreHandle.Adjustment フィールド。

cameraSyncObject

IMFSyncObject インターフェイスを受け取る出力パラメーター。 呼び出し元は、このオブジェクトを解放する必要があります。

戻り値

次の値を含むがこれらに限定されない HRESULT 値を返します。

エラー コード 説明
S_OK 成功

解説

このメソッドを使用すると、呼び出し元は、同期のために呼び出し元と仮想カメラの間にセマフォ オブジェクトを作成できます。 仮想カメラの実装では、この API が呼び出されると 、IKsControl::KsEvent の呼び出しを受け取ります。 結果の IMFCameraSyncObject を 使用して、仮想カメラからイベントをブロックできます。

IMFCameraSyncObject が取得されると、呼び出し元は、CREATESyncObject メソッドに提供された HANDLE で IMFCameraSyncObject::WaitOnSignal メソッドを使用するか、WaitForSingleObject または WaitForMultipleObjects を呼び出すことができます。 イベントのシグナルはドライバーによって 1 回だけ設定される可能性があるため、呼び出し元は両方を待機してはなりません。

待機操作が成功したかどうかに関係なく、同期オブジェクトが不要になった場合、呼び出し元は IMFCameraSyncObject::Shutdown を呼び出す必要があります。

要件

   
サポートされている最小のクライアント Windows ビルド 22000
Header mfvirtualcamera.h
Library mfsensorgroup.lib
[DLL] mfsensorgroup.dll

関連項目

IKsControl::KsEvent

IMFCameraSyncObject

IMFCameraSyncObject::WaitOnSignal

WaitForSingleObject

WaitForMultipleObjects