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