Метод IMFVirtualCamera::CreateSyncSemaphore (mfvirtualcamera.h)
Оболочка для метода IKsControl::KsEvent , которая включает или отключает семафор.
Синтаксис
HRESULT CreateSyncSemaphore(
REFGUID kseventSet,
ULONG kseventId,
ULONG kseventFlags,
HANDLE semaphoreHandle,
LONG semaphoreAdjustment,
IMFCameraSyncObject **cameraSyncObject
);
Параметры
kseventSet
GUID, представляющий KSEVENT. Задать поле.
kseventId
ULONG, представляющий поле KSEVENT.Id .
kseventFlags
Набор битовых флагов или флагов, представляющих KSEVENT. Поле Флаги .
semaphoreHandle
Дескриптор , представляющий KSEVENTDATA. Поле SemaphoreHandle.Semaphore .
semaphoreAdjustment
Значение корректировки, представляющее KSEVENTDATA. Поле SemaphoreHandle.Adjustment .
cameraSyncObject
Выходной параметр, получающий интерфейс IMFSyncObject . Вызывающий объект отвечает за освобождение этого объекта.
Возвращаемое значение
Возвращает значение HRESULT, включая, помимо прочего, следующие значения:
Код ошибки | Описание |
---|---|
S_OK | Выполнено |
Комментарии
Этот метод позволяет вызывающему объекту создать объект-семафор между вызывающим объектом и виртуальной камерой для синхронизации. Реализация виртуальной камеры будет получать вызов IKsControl::KsEvent при вызове этого API. Полученный объект IMFCameraSyncObject можно использовать для блокировки события с виртуальной камеры.
При получении объекта IMFCameraSyncObject вызывающий объект может использовать метод IMFCameraSyncObject::WaitOnSignal или метод WaitForSingleObject или WaitForMultipleObject в методе HANDLE, предоставленном методу CreateSyncObject . Вызывающий объект не должен ждать в обоих случаях, так как сигнал для события может быть задан драйвером только один раз.
Вызывающий объект должен вызывать IMFCameraSyncObject::Shutdown , если объект синхронизации больше не требуется, независимо от того, успешно ли выполнена операция ожидания.
Требования
Минимальная версия клиента | Сборка Windows 22000 |
Верхняя часть | mfvirtualcamera.h |
Библиотека | mfsensorgroup.lib |
DLL | mfsensorgroup.dll |