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 |