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