IMFVirtualCamera::CreateSyncSemaphore 方法 (mfvirtualcamera.h)

IKsControl::KsEvent 方法的包装器,用于启用或禁用信号灯。

语法

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

parameters

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 后,调用方可以选择使用 IMFCameraSyncObject::WaitOnSignal 方法,或者在提供给 CreateSyncObject 方法的 HANDLE 上调用 WaitForSingleObjectWaitForMultipleObjects 调用方不得同时等待这两者,因为驱动程序只能设置事件上的信号一次。

当不再需要同步对象时,调用方必须调用 IMFCameraSyncObject::Shutdown ,而不管等待操作是否成功。

要求

   
最低受支持的客户端 Windows 内部版本 22000
标头 mfvirtualcamera.h
Library mfsensorgroup.lib
DLL mfsensorgroup.dll

另请参阅

IKsControl::KsEvent

IMFCameraSyncObject

IMFCameraSyncObject::WaitOnSignal

WaitForSingleObject

WaitForMultipleObjects