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 |