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 上调用 WaitForSingleObject 或 WaitForMultipleObjects。 调用方不得同时等待这两者,因为驱动程序只能设置事件上的信号一次。
当不再需要同步对象时,调用方必须调用 IMFCameraSyncObject::Shutdown ,而不管等待操作是否成功。
要求
最低受支持的客户端 | Windows 内部版本 22000 |
标头 | mfvirtualcamera.h |
Library | mfsensorgroup.lib |
DLL | mfsensorgroup.dll |