функция обратного вызова 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)

См. также раздел

CommandCompleteFunction

USBCAMD_INTERFACE

USBCAMD_InitializeNewInterface