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
指向由 USB 集线器创建的相机微型驱动程序的设备对象的指针。
DeviceContext
指向相机微型驱动程序的设备上下文的指针。
CurrentFrameContext
指向相机微型驱动程序的帧上下文的指针。
SyncPacket
指向同步管道 中USBD_ISO_PACKET_DESCRIPTOR 结构的指针。 如果接口只有一个管道,则此值为 NULL 。
SyncBuffer
指向 SyncPacket 数据的指针。
DataPacket
指定数据管道中的常时等量数据包描述符。
DataBuffer
指向 DataPacket 的指针。
FrameComplete
指向相机微型驱动程序设置的 BOOLEAN 值的指针,指示这是否是新视频帧的第一个数据包。
PacketFlag
指向微型驱动程序设置的值的指针,该值指示当前帧的内容。 它应设置为以下值之一:
标志 | 含义 |
---|---|
USBCAMD_PROCESSPACKETEX_DropFrame | 当前帧不可处理。 应回收读取的 IRP。 |
USBCAMD_PROCESSPACKETEX_NextFrameIsStill | 帧是静态图像。 |
USBCAMD_PROCESSPACKETEX_CurrentFrameIsStill | 当前帧适用于静止图钉。 |
ValidDataOffset
指向 ULONG 值的指针,该值指示与数据包开头的偏移量。 USBCAMD 应从此偏移量开始复制。 这消除了带内信号的额外缓冲区复制。 如果相机未使用带内信号,则 ValidDataOffset 应设置为零。
返回值
此函数返回应复制的字节数。
注解
微型驱动程序应尽快完成 CamProcessUSBPacketEx 功能。 图像处理应延迟到 CamProcessRawVideoFrameEx 函数。
此回调函数与仅 (视频或仍在流式处理) 的常时等量管道一起使用。
原始 USBCAMD 不调用 CamProcessUSBPacketEx。
此函数是可选的。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | usbcamdi.h (包括 Usbcamdi.h) |
IRQL | DISPATCH_LEVEL |