PCAM_PROCESS_PACKET_ROUTINE_EX funzione di callback (usbcamdi.h)

La funzione di callback camProcessUSBPacketEx di una fotocamera minidriver elabora un pacchetto USB.

Sintassi

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

Parametri

BusDeviceObject

Puntatore all'oggetto dispositivo del minidriver della fotocamera creato dall'hub USB.

DeviceContext

Puntatore al contesto del dispositivo del minidriver della fotocamera.

CurrentFrameContext

Puntatore al contesto della cornice del minidriver della fotocamera.

SyncPacket

Puntatore a una struttura USBD_ISO_PACKET_DESCRIPTOR dalla pipe di sincronizzazione. Questo valore è NULL se l'interfaccia ha una sola pipe.

SyncBuffer

Puntatore ai dati per SyncPacket.

DataPacket

Specifica il descrittore di pacchetti isochronous dalla pipe dei dati.

DataBuffer

Puntatore a DataPacket.

FrameComplete

Puntatore a un valore BOOLEAN impostato dal minidriver della fotocamera per indicare se si tratta del primo pacchetto di dati per un nuovo fotogramma video.

PacketFlag

Puntatore a un valore impostato dal minidriver per indicare il contenuto del frame corrente. Deve essere impostato su uno dei valori seguenti:

Flag Significato
USBCAMD_PROCESSPACKETEX_DropFrame Il frame corrente non è utilizzabile. L'IRP letto deve essere riciclato.
USBCAMD_PROCESSPACKETEX_NextFrameIsStill La cornice è un'immagine ancora.
USBCAMD_PROCESSPACKETEX_CurrentFrameIsStill Il frame corrente è per il pin ancora.

ValidDataOffset

Puntatore a un valore ULONG che indica un offset dall'inizio del pacchetto. USBCAMD deve avviare la copia da questo offset. In questo modo viene eliminata la copia del buffer aggiuntivo nel caso di un segnale in banda. Se la fotocamera non usa il segnale in banda, ValidDataOffset deve essere impostata su zero.

Valore restituito

Questa funzione restituisce il numero di byte che devono essere copiati.

Commenti

Il minidriver deve completare la funzione CamProcessUSBPacketEx il più rapidamente possibile. L'elaborazione delle immagini deve essere posticipata alla funzione CamProcessRawVideoFrameEx .

Questa funzione di callback viene usata solo con pipe isochronos (video o ancora in streaming).

L'USBCAMD originale non chiama CamProcessUSBPacketEx.

Questa funzione è facoltativa.

Requisiti

   
Piattaforma di destinazione Desktop
Intestazione usbcamdi.h (includere Usbcamdi.h)
IRQL DISPATCH_LEVEL

Vedi anche

CamProcessRawVideoFrameEx

USBD_ISO_PACKET_DESCRIPTOR