Compartir a través de


PCAM_PROCESS_RAW_FRAME_ROUTINE_EX función de devolución de llamada (usbcamdi.h)

Una minidriver de cámara CamProcessRawVideoFrameEx función de devolución de llamada descodifica un fotograma de vídeo sin procesar.

Sintaxis

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
)
{...}

Parámetros

BusDeviceObject

Puntero al objeto de dispositivo del minidriver de la cámara creado por el concentrador USB.

DeviceContext

Puntero al contexto del dispositivo del minidriver de la cámara.

FrameContext

Puntero al contexto de marco del minidriver.

FrameBuffer

Puntero al búfer que recibe el fotograma de vídeo procesado final. Consulte la sección Comentarios para obtener más información sobre cómo USBCAMD usa este parámetro.

FrameLength

Especifica la longitud del búfer de fotogramas (de la solicitud de lectura original) en bytes.

RawFrameBuffer

Puntero al búfer que contiene los paquetes USB recibidos. Consulte la sección Comentarios para obtener más información sobre cómo USBCAMD usa este parámetro.

RawFrameLength

Especifica la longitud de RawFrameBuffer en bytes.

NumberOfPackets

Especifica el número de paquetes USB recibidos en RawFrameBuffer.

BytesReturned

Puntero al número de bytes transferidos. El minidriver debe establecerlo en cero si encuentra errores durante el procesamiento, como se describe en Flujo de datos mediante canalizaciones isocronosas. Consulte la sección Comentarios para obtener más información sobre cómo USBCAMD usa este parámetro.

ActualRawFrameLength

Contiene la longitud del búfer real recibido de la cámara. Este valor se especifica en bytes.

StreamNumber

Indica el número de secuencia al que está asociado este marco.

Valor devuelto

camProcessRawVideoFrameEx devuelve STATUS_SUCCESS o un código de error adecuado.

Observaciones

Antes de que USBCAMD llame a la devolución de llamada CamProcessRawVideoFrame Ex del minidriver, establece el primer DWORD del búfer al que apunta el parámetro FrameBuffer en el valor 0xdeadbeef. Después de llamar al CamProcessRawVideoFrameEx de la minidriver devolución de llamada USBCAMD comprueba el primer DWORD del búfer al que apunta el parámetro frameBuffer para el valor 0xdeadbeef a determine si camProcessRawVideoFrameEx copió correctamente el fotograma de vídeo del búfer al que apunta el parámetro RawFrameBuffer en el búfer al que apunta el parámetro FrameBuffer.

No se llama a esta función si alguno de los siguientes bits se establece en el argumento camControlFlag pasado a la función USBCAMD_InitializeNewInterface:

USBCAMD_CamControlFlag_NoVideoRawProcessing

USBCAMD_CamControlFlag_NoStillRawProcessing

USBCAMD borra la marca de opciones de encabezado de secuencia antes de pasar el marco sin formato al minidriver. La marca predeterminada es solo fotogramas clave. El minidriver de cámara debe establecer las marcas de opción de encabezado de secuencia adecuadamente si necesita indicar algo distinto de los fotogramas clave.

El USBCAMD original no llama a CamProcessRawVideoFrameEx.

Esta función es opcional.

Requisitos

Requisito Valor
de la plataforma de destino de Escritorio
encabezado de usbcamdi.h (incluya Usbcamdi.h)
irQL PASSIVE_LEVEL