функция обратного вызова PCAM_PROCESS_RAW_FRAME_ROUTINE (usbcamdi.h)
[CamProcessRawVideoFrame не поддерживается и может быть изменен или недоступен в будущем. Вместо этого используйте CamProcessRawVideoFrameEx. ]
Функция обратного вызова CamProcessRawVideoFrame мини-накопителя камеры декодирует необработанный видеокадр.
Синтаксис
PCAM_PROCESS_RAW_FRAME_ROUTINE PcamProcessRawFrameRoutine;
NTSTATUS PcamProcessRawFrameRoutine(
PDEVICE_OBJECT BusDeviceObject,
PVOID DeviceContext,
PVOID FrameContext,
PVOID FrameBuffer,
ULONG FrameLength,
PVOID RawFrameBuffer,
ULONG RawFrameLength,
ULONG NumberOfPackets,
PULONG BytesReturned
)
{...}
Параметры
BusDeviceObject
Указатель на объект устройства мини-накопителя камеры, созданный USB-концентратором.
DeviceContext
Указатель на контекст устройства мини-накопителя камеры.
FrameContext
Указатель на контекст кадра мини-диска камеры.
FrameBuffer
Указатель на буфер, который получает окончательный обработанный видеокадр. Дополнительные сведения о том, как USBCAMD использует этот параметр, см. в разделе Примечания.
FrameLength
Указывает длину буфера кадров (из исходного запроса на чтение) в байтах.
RawFrameBuffer
Указатель на буфер, содержащий полученные USB-пакеты. Дополнительные сведения о том, как USBCAMD использует этот параметр, см. в разделе Примечания.
RawFrameLength
Задает длину RawFrameBuffer в байтах.
NumberOfPackets
Указывает количество USB-пакетов, полученных в RawFrameBuffer.
BytesReturned
Указатель на количество переданных байтов. Если во время обработки возникают какие-либо ошибки, мини-отвертка должна иметь значение 0, как описано в Поток данных использование изохронных каналов. Дополнительные сведения о том, как USBCAMD использует этот параметр, см. в разделе Примечания.
Возвращаемое значение
CamProcessRawVideoFrame возвращает STATUS_SUCCESS или соответствующий код ошибки.
Комментарии
Перед тем как USBCAMD вызовет обратный вызов CamProcessRawVideoFrame мини-накопителя, он устанавливает для первого DWORD в буфере, на который указывает параметр FrameBuffer , значение 0xdeadbeef. После вызова обратного вызова USBCAMD camProcessRawVideoFrame мини-накопителя проверяет первый DWORD в буфере, на который указывает параметр FrameBuffer , для значения 0xdeadbeef , чтобы определить, успешно ли CamProcessRawVideoFrame скопировал видеокадр из буфера, на который указывает параметр RawFrameBuffer , в буфер, на который указывает параметр FrameBuffer .
Мини-накопители камеры, которые должны поддерживать обратную совместимость с исходным USBCAMD, должны использовать структуру USBCAMD_DEVICE_DATA и связанные с ней функции обратного вызова (то есть функции обратного вызова, не содержащие суффикс Ex).
Эта функция является необязательной.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | usbcamdi.h (включая Usbcamdi.h) |
IRQL | PASSIVE_LEVEL |