PCAM_PROCESS_RAW_FRAME_ROUTINE_EX回调函数 (usbcamdi.h)

相机微型驱动程序的 CamProcessRawVideoFrameEx 回调函数解码原始视频帧。

语法

PCAM_PROCESS_RAW_FRAME_ROUTINE_EX PcamProcessRawFrameRoutineEx;

NTSTATUS PcamProcessRawFrameRoutineEx(
  PDEVICE_OBJECT BusDeviceObject,
  PVOID DeviceContext,
  PVOID FrameContext,
  PVOID FrameBuffer,
  ULONG FrameLength,
  PVOID RawFrameBuffer,
  ULONG RawFrameLength,
  ULONG NumberOfPackets,
  PULONG BytesReturned,
  ULONG ActualRawFrameLength,
  ULONG StreamNumber
)
{...}

参数

BusDeviceObject

指向由 USB 集线器创建的相机微型驱动程序的设备对象的指针。

DeviceContext

指向相机微型驱动程序的设备上下文的指针。

FrameContext

指向微型驱动程序的框架上下文的指针。

FrameBuffer

指向接收最终处理视频帧的缓冲区的指针。 有关 USBCAMD 如何使用此参数的详细信息,请参阅备注部分。

FrameLength

指定从原始读取请求) (帧缓冲区的长度(以字节为单位)。

RawFrameBuffer

指向包含接收的 USB 数据包的缓冲区的指针。 有关 USBCAMD 如何使用此参数的详细信息,请参阅备注部分。

RawFrameLength

指定 RawFrameBuffer 的长度(以字节为单位)。

NumberOfPackets

指定接收到 RawFrameBuffer 中的 USB 数据包数。

BytesReturned

指向传输的字节数的指针。 如果微型驱动程序在处理过程中遇到任何错误,则必须将其设置为零,如使用常量管道数据流中所述。 有关 USBCAMD 如何使用此参数的详细信息,请参阅备注部分。

ActualRawFrameLength

包含从相机接收的实际缓冲区的长度。 此值以字节为单位指定。

StreamNumber

指示与此帧关联的流号。

返回值

CamProcessRawVideoFrameEx 返回STATUS_SUCCESS或相应的错误代码。

注解

在 USBCAMD 调用微型驱动程序的 CamProcessRawVideoFrameEx 回调之前,它将 FrameBuffer 参数指向的缓冲区中的第一个 DWORD 设置为 0xdeadbeef值。 调用微型驱动程序的 CamProcessRawVideoFrameEx 回调后,USBCAMD 检查 FrameBuffer 参数指向的缓冲区中的第一个 DWORD 值 0xdeadbeef 以确定 CamProcessRawVideoFrameEx 是否成功将视频帧从 RawFrameBuffer 参数指向的缓冲区复制到 FrameBuffer 参数指向的缓冲区中。

如果在传递给 USBCAMD_InitializeNewInterface 函数的 CamControlFlag 参数中设置了以下任一位,则不调用 函数:

USBCAMD_CamControlFlag_NoVideoRawProcessing

USBCAMD_CamControlFlag_NoStillRawProcessing

USBCAMD 在将原始帧传递给微型驱动程序之前清除流标头选项标志。 默认标志仅为关键帧。 如果需要指示关键帧以外的任何内容,相机微型驱动程序应适当地设置流标头选项标志。

原始 USBCAMD 不调用 CamProcessRawVideoFrameEx

此函数是可选的。

要求

要求
目标平台 桌面
标头 usbcamdi.h (包括 Usbcamdi.h)
IRQL PASSIVE_LEVEL