Поделиться через


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

Указатель на блок памяти, который передается в качестве аргумента в мини-driver камеры, определенный CommandCompleteFunction.

[in] LoopBack

Указывает, следует ли USBCAMD повторно отправлять другой запрос на чтение в канал прерываний при каждом завершении чтения прерывания. Задайте значение TRUE

Возвращаемое значение

USBCAMD_WaitOnDeviceEvent возвращает STATUS_SUCCESS, если вызов выполнен успешно. Другие возможные коды ошибок включают:

Возвращаемый код Описание
STATUS_FILE_CLOSED Устройство было удалено.
STATUS_INVALID_PARAMETER USBCAMD может возвращать STATUS_INVALID_PARAMETER по ряду причин, включая: значение, переданное в аргументе PipeIndex, недопустимо, тип канала, указанный аргументом PipeIndex, представляет недопустимый тип канала, уже существует запрос на массовое чтение и запись, или аргумент буфераNULL. Длина, указанная в аргументе BufferLength, меньше максимального размера пакета.
STATUS_PENDING Рабочий элемент события откладывается.
STATUS_INSUFFICIENT_RESOURCES Недостаточно ресурсов для выделения рабочего элемента для чтения из канала.

Замечания

Типичным сценарием использования этой функции является камера с кнопкой моментального снимка и канал прерывания, связанный с кнопкой. Когда пользователь нажимает кнопку моментального снимка, запрос на чтение в канале прерываний удовлетворен, а мини-накопитель камеры вызывается обратно. Если мини-driver камеры задает USBCAMD_CamControlFlag_EnableDeviceEvents в аргументе CamControlFlag во время вызова USBCAMD_InitializeNewInterface, монитор STI также уведомляется о событии моментального снимка.

USBCAMD_WaitOnDeviceEvent недоступна в USBCAMD версии 1.0.

Требования

Требование Ценность
целевая платформа Настольный
заголовка usbcamdi.h (включая Usbcamdi.h)

См. также

CommandCompleteFunction

USBCAMD_INTERFACE

USBCAMD_InitializeNewInterface