Compartir a través de


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

Una función de devolución de llamada CamProcessUSBPacketEx de una minidriver de cámara procesa un paquete USB.

Sintaxis

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

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.

CurrentFrameContext

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

SyncPacket

Puntero a una estructura de USBD_ISO_PACKET_DESCRIPTOR desde la canalización de sincronización. Este valor es NULL si la interfaz solo tiene una canalización.

SyncBuffer

Puntero a los datos del SyncPacket.

DataPacket

Especifica el descriptor de paquetes isócrono de la canalización de datos.

DataBuffer

Puntero a DataPacket.

FrameComplete

Puntero a un valor BOOLEAN que el minidriver de cámara establece para indicar si este es el primer paquete de datos para un nuevo fotograma de vídeo.

PacketFlag

Puntero a un valor que establece el minidriver para indicar el contenido del marco actual. Debe establecerse en uno de los siguientes valores:

Marca Significado
USBCAMD_PROCESSPACKETEX_DropFrame El marco actual no se puede administrar. El IRP de lectura debe reciclarse.
USBCAMD_PROCESSPACKETEX_NextFrameIsStill El marco es una imagen fija.
USBCAMD_PROCESSPACKETEX_CurrentFrameIsStill El marco actual es para la patilla fija.

ValidDataOffset

Puntero a un valor ULONG que indica un desplazamiento desde el principio del paquete. USBCAMD debe iniciar la copia desde este desplazamiento. Esto elimina la copia de búfer adicional en el caso de una señal en banda. Si la cámara no usa señalización en banda, ValidDataOffset debe establecerse en cero.

Valor devuelto

Esta función devuelve el número de bytes que se deben copiar.

Comentarios

El minidriver debe completar su función CamProcessUSBPacketEx lo antes posible. El procesamiento de imágenes debe aplazarse a la función CamProcessRawVideoFrameEx .

Esta función de devolución de llamada se usa solo con canalizaciones isócrónicas (vídeo o streaming todavía).

El USBCAMD original no llama a CamProcessUSBPacketEx.

Esta función es opcional.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado usbcamdi.h (incluya Usbcamdi.h)
IRQL DISPATCH_LEVEL

Consulte también

CamProcessRawVideoFrameEx

USBD_ISO_PACKET_DESCRIPTOR