PCAM_PROCESS_PACKET_ROUTINE_EX funzione di callback (usbcamdi.h)

La funzione di callback CamProcessUSBPacketEx di un minidriver della fotocamera 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 di dispositivo del minidriver della fotocamera.

CurrentFrameContext

Puntatore al contesto del fotogramma 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:

Contrassegno Significato
USBCAMD_PROCESSPACKETEX_DropFrame Il frame corrente non è modificabile. L'IRP letto deve essere riciclato.
USBCAMD_PROCESSPACKETEX_NextFrameIsStill Il fotogramma è un'immagine ancora.
USBCAMD_PROCESSPACKETEX_CurrentFrameIsStill Il frame corrente è per il segnaposto.

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 extra del buffer nel caso di un segnale in banda. Se la fotocamera non usa la segnalazione in banda, ValidDataOffset deve essere impostata su zero.

Valore restituito

Questa funzione restituisce il numero di byte da copiare.

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 isocrone (video o ancora in streaming).

L'USBCAMD originale non chiama CamProcessUSBPacketEx.

Questa funzione è facoltativa.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione usbcamdi.h (include Usbcamdi.h)
IRQL DISPATCH_LEVEL

Vedi anche

CamProcessRawVideoFrameEx

USBD_ISO_PACKET_DESCRIPTOR