функция обратного вызова PFNUSBCAMD_WaitOnDeviceEvent (usbcamdi.h)
Служба USBCAMD_WaitOnDeviceEvent используется для чтения из канала прерывания, если камера имеет канал прерывания для уведомлений о внешних событиях.
Синтаксис
PFNUSBCAMD_WaitOnDeviceEvent PfnusbcamdWaitondeviceevent;
NTSTATUS PfnusbcamdWaitondeviceevent(
[in] PVOID DeviceContext,
[in] ULONG PipeIndex,
[in] PVOID Buffer,
[in] ULONG BufferLength,
[in] PCOMMAND_COMPLETE_FUNCTION EventComplete,
[in] PVOID EventContext,
[in] BOOLEAN LoopBack
)
{...}
Параметры
[in] DeviceContext
Указатель на контекст устройства.
[in] PipeIndex
Указывает индекс канала прерывания.
[in] Buffer
Указатель на буфер чтения.
[in] BufferLength
Длина буфера чтения в байтах.
[in] EventComplete
Указатель на мини-диск камеры, определенный commandCompleteFunction, который вызывается при завершении чтения прерывания. Это значение может иметь значение NULL.
[in] EventContext
Указатель на блок памяти, который передается в качестве аргумента в мини-диск камеры, определенный commandCompleteFunction.
[in] LoopBack
Указывает, следует ли USBCAMD повторно отправлять другой запрос на чтение в канал прерывания каждый раз, когда выполняется чтение прерывания. Задайте значение TRUE.
Возвращаемое значение
USBCAMD_WaitOnDeviceEvent возвращает STATUS_SUCCESS, если вызов был выполнен успешно. Другие возможные коды ошибок:
Код возврата | Описание |
---|---|
STATUS_FILE_CLOSED | Устройство удалено. |
STATUS_INVALID_PARAMETER | USBCAMD может возвращать STATUS_INVALID_PARAMETER по ряду причин, в том числе: значение, переданное в аргументе PipeIndex , недопустимо, тип канала, заданный аргументом PipeIndex , представляет недопустимый тип канала, запрос на массовое чтение и запись уже существует или аргумент Buffer имеет значение NULL. Длина, указанная в аргументе BufferLength, меньше максимального размера пакета. |
STATUS_PENDING | Рабочий элемент события откладывается. |
STATUS_INSUFFICIENT_RESOURCES | Недостаточно ресурсов для выделения рабочего элемента для чтения из канала. |
Комментарии
Типичный сценарий использования этой функции — камера с кнопкой snapshot и каналом прерывания, связанным с кнопкой. Когда пользователь нажимает кнопку snapshot, запрос на чтение в канале прерывания выполняется и вызывается мини-диск камеры. Если мини-диск камеры устанавливает USBCAMD_CamControlFlag_EnableDeviceEvents в аргументе CamControlFlag во время вызова USBCAMD_InitializeNewInterface, монитор STI также получает уведомление о событии snapshot.
USBCAMD_WaitOnDeviceEvent недоступна в USBCAMD версии 1.0.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | usbcamdi.h (включая Usbcamdi.h) |