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


функция обратного вызова PCAM_PROCESS_PACKET_ROUTINE_EX (usbcamdi.h)

Функция обратного вызова камеры CamProcessUSBPacketEx обрабатывает USB-пакет.

Синтаксис

PCAM_PROCESS_PACKET_ROUTINE_EX PcamProcessPacketRoutineEx;

ULONG PcamProcessPacketRoutineEx(
  PDEVICE_OBJECT BusDeviceObject,
  PVOID DeviceContext,
  PVOID CurrentFrameContext,
  PUSBD_ISO_PACKET_DESCRIPTOR SyncPacket,
  PVOID SyncBuffer,
  PUSBD_ISO_PACKET_DESCRIPTOR DataPacket,
  PVOID DataBuffer,
  PBOOLEAN FrameComplete,
  PULONG PacketFlag,
  PULONG ValidDataOffset
)
{...}

Параметры

BusDeviceObject

Указатель на объект устройства мини-driver камеры, созданный USB-концентратором.

DeviceContext

Указатель на контекст устройства мини-driver камеры.

CurrentFrameContext

Указатель на контекст кадра мини-driver камеры.

SyncPacket

Указатель на структуру USBD_ISO_PACKET_DESCRIPTOR из канала синхронизации. Это значение null, если интерфейс имеет только один канал.

SyncBuffer

Указатель на данные для SyncPacket.

DataPacket

Указывает дескриптор пакета из канала данных.

DataBuffer

Указатель на DataPacket.

FrameComplete

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

PacketFlag

Указатель на значение, которое задает мини-driver, указывающее содержимое текущего кадра. Оно должно иметь одно из следующих значений:

Флаг Значение
USBCAMD_PROCESSPACKETEX_DropFrame Текущий кадр является неустранимым. Чтение IRP должно быть переработано.
USBCAMD_PROCESSPACKETEX_NextFrameIsStill Кадр является по-прежнему изображением.
USBCAMD_PROCESSPACKETEX_CurrentFrameIsStill Текущий кадр предназначен для закрепления.

ValidDataOffset

Указатель на значение ULONG, указывающее смещение с начала пакета. USBCAMD должен запустить копию из этого смещения. Это устраняет дополнительную копию буфера в случае сигнала в диапазоне. Если камера не использует сигнал в полосе, ValidDataOffset должно быть равно нулю.

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

Эта функция возвращает количество байтов, которые должны быть скопированы.

Замечания

Мини-driver должен завершить свою функцию CamProcessUSBPacketEx как можно быстрее. Обработка изображений должна быть отложена до функции CamProcessRawVideoFrameEx.

Эта функция обратного вызова используется только с изохронными каналами (видео или по-прежнему потоковая передача).

Исходный USBCAMD не вызывает CamProcessUSBPacketEx.

Эта функция является необязательной.

Требования

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

См. также

CamProcessRawVideoFrameEx

USBD_ISO_PACKET_DESCRIPTOR