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

指向相机微型驱动程序设置的布尔值指针,指示这是新视频帧的第一个数据包。

PacketFlag

指向微型驱动程序设置为指示当前帧内容的值的指针。 它应设置为以下值之一:

标志 含义
USBCAMD_PROCESSPACKETEX_DropFrame 当前帧不可处理。 应回收读取 IRP。
USBCAMD_PROCESSPACKETEX_NextFrameIsStill 帧是静止图像。
USBCAMD_PROCESSPACKETEX_CurrentFrameIsStill 当前帧适用于仍固定。

ValidDataOffset

指向 ULONG 值的指针,该值指示数据包开头的偏移量。 USBCAMD 应从此偏移量启动副本。 这消除了带内信号时的额外缓冲区副本。 如果相机未使用带内信号, 则 ValidDataOffset 应设置为零。

返回值

此函数返回应复制的字节数。

备注

微型驱动程序应尽快完成 CamProcessUSBPacketEx 函数。 图像处理应延迟到 CamProcessRawVideoFrameEx 函数。

此回调函数仅与连续管道一起使用, (视频或仍在流式传输) 。

原始 USBCAMD 不调用 CamProcessUSBPacketEx

此函数是可选的。

要求

   
目标平台 桌面
Header usbcamdi.h (包括 Usbcamdi.h)
IRQL DISPATCH_LEVEL

另请参阅

CamProcessRawVideoFrameEx

USBD_ISO_PACKET_DESCRIPTOR