PCAM_PROCESS_RAW_FRAME_ROUTINE_EX funzione di callback (usbcamdi.h)

Una funzione di callback CamProcessRawVideoFrameEx della fotocamera decodifica un fotogramma video non elaborato.

Sintassi

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

Parametri

BusDeviceObject

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

DeviceContext

Puntatore al contesto del dispositivo del minidriver della fotocamera.

FrameContext

Puntatore al contesto del frame del minidriver.

FrameBuffer

Puntatore al buffer che riceve il fotogramma video elaborato finale. Per altre informazioni sul modo in cui USBCAMD usa questo parametro, vedere la sezione Osservazioni.

FrameLength

Specifica la lunghezza del buffer del frame (dalla richiesta di lettura originale) in byte.

RawFrameBuffer

Puntatore al buffer contenente i pacchetti USB ricevuti. Per altre informazioni sul modo in cui USBCAMD usa questo parametro, vedere la sezione Osservazioni.

RawFrameLength

Specifica la lunghezza di RawFrameBuffer in byte.

NumberOfPackets

Specifica il numero di pacchetti USB ricevuti in RawFrameBuffer.

BytesReturned

Puntatore al numero di byte trasferiti. Il minidriver deve impostare questo valore su zero se si verificano errori durante l'elaborazione, come descritto in Flusso di dati Using Isochronous Pipe. Per altre informazioni sul modo in cui USBCAMD usa questo parametro, vedere la sezione Osservazioni.

ActualRawFrameLength

Contiene la lunghezza del buffer effettivo ricevuto dalla fotocamera. Questo valore viene specificato in byte.

StreamNumber

Indica il numero di flusso a cui è associato questo frame.

Valore restituito

CamProcessRawVideoFrameEx restituisce STATUS_SUCCESS o un codice di errore appropriato.

Commenti

Prima che USBCAMD chiami il callback camProcessRawVideoFrameEx del minidriver, imposta il primo DWORD nel buffer a cui punta il parametro FrameBuffer al valore 0xdeadbeef. Dopo aver chiamato il callback USBCAMD di CamProcessRawVideoFrameEx del minidriver controlla il primo DWORD nel buffer a cui punta il parametro FrameBuffer per il valore 0xdeadbeef per determinare se CamProcessRawVideoFrameEx copiato correttamente il fotogramma video dal buffer puntato al parametro RawFrameBuffer nel buffer a cui punta il parametro FrameBuffer dal parametro FrameBuffer.

Questa funzione non viene chiamata se uno dei bit seguenti viene impostato nell'argomento CamControlFlag passato alla funzione USBCAMD_InitializeNewInterface :

USBCAMD_CamControlFlag_NoVideoRawProcessing

USBCAMD_CamControlFlag_NoStillRawProcessing

USBCAMD cancella il flag delle opzioni di intestazione del flusso prima di passare il frame non elaborato al minidriver. Il flag predefinito è solo fotogrammi chiave. Il minidriver della fotocamera deve impostare i flag di opzione dell'intestazione di flusso in modo appropriato se deve indicare qualsiasi elemento diverso da fotogrammi chiave.

L'USBCAMD originale non chiama CamProcessRawVideoFrameEx.

Questa funzione è facoltativa.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione usbcamdi.h (includere Usbcamdi.h)
IRQL PASSIVE_LEVEL