PCAM_PROCESS_RAW_FRAME_ROUTINE_EX Rückruffunktion (usbcamdi.h)
Die CamProcessRawVideoFrameEx eines Kamera-Minidrivers Rückruffunktion decodiert einen rohen Videoframe.
Syntax
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
)
{...}
Parameter
BusDeviceObject
Zeiger auf das Geräteobjekt des Kameraminidrivers, das vom USB-Hub erstellt wurde.
DeviceContext
Zeigen Sie auf den Gerätekontext des Kamera-Minidrivers.
FrameContext
Zeigen Sie auf den Framekontext des Minidrivers.
FrameBuffer
Zeigen Sie auf den Puffer, der den endgültig verarbeiteten Videoframe empfängt. Weitere Informationen dazu, wie USBCAMD diesen Parameter verwendet, finden Sie im Abschnitt "Hinweise".
FrameLength
Gibt die Länge des Framepuffers (aus der ursprünglichen Leseanforderung) in Bytes an.
RawFrameBuffer
Zeigen Sie auf den Puffer, der die empfangenen USB-Pakete enthält. Weitere Informationen dazu, wie USBCAMD diesen Parameter verwendet, finden Sie im Abschnitt "Hinweise".
RawFrameLength
Gibt die Länge RawFrameBuffer- in Byte an.
NumberOfPackets
Gibt die Anzahl der IN RawFrameBufferempfangenen USB-Pakete an.
BytesReturned
Zeiger auf die Anzahl der übertragenen Bytes. Der Minidriver muss dies auf Null festlegen, wenn während der Verarbeitung Fehler auftreten, wie in Data Flow Using Isochronous Pipesbeschrieben. Weitere Informationen dazu, wie USBCAMD diesen Parameter verwendet, finden Sie im Abschnitt "Hinweise".
ActualRawFrameLength
Enthält die Länge des tatsächlichen Puffers, der von der Kamera empfangen wird. Dieser Wert wird in Byte angegeben.
StreamNumber
Gibt die Datenstromnummer an, mit der dieser Frame verknüpft ist.
Rückgabewert
CamProcessRawVideoFrameEx gibt STATUS_SUCCESS oder einen entsprechenden Fehlercode zurück.
Bemerkungen
Bevor USBCAMD die CamProcessRawVideoFrameEx- Callback des Minidrivers aufruft, wird das erste DWORD im Puffer festgelegt, auf den der FrameBuffer-Parameter Parameter verweist, auf den Wert 0xdeadbeef. Nach dem Aufrufen des CamProcessRawVideoFrameEx Callback-USBCAMD überprüft das erste DWORD im Puffer, auf das durch den FrameBuffer Parameter für den Wert 0xdeadbeef Ermitteln Sie, ob CamProcessRawVideoFrame Ex erfolgreich den Videoframe aus dem Puffer kopiert hat, auf den der RawFrameBuffer Parameter verweist, in den Puffer, auf den der FrameBuffer Parameter verweist.
Diese Funktion wird nicht aufgerufen, wenn eines der folgenden Bits im CamControlFlag Argument festgelegt wird, das an die USBCAMD_InitializeNewInterface-Funktion übergeben wird:
USBCAMD_CamControlFlag_NoVideoRawProcessing
USBCAMD_CamControlFlag_NoStillRawProcessing
USBCAMD löscht das Flag der Streamheaderoptionen, bevor der rohe Frame an den Minidriver übergeben wird. Die Standardkennzeichnung ist nur Keyframes. Der Kamera-Minidriver sollte die Streamheaderoption entsprechend festlegen, wenn er etwas anderes als Keyframes angeben muss.
Die ursprüngliche USBCAMD ruft CamProcessRawVideoFrameExnicht auf.
Diese Funktion ist optional.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Desktop |
Header- | usbcamdi.h (include Usbcamdi.h) |
IRQL- | PASSIVE_LEVEL |