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 |