PCAM_PROCESS_PACKET_ROUTINE_EX Rückruffunktion (usbcamdi.h)
Die CamProcessUSBPacketEx eines Kamera-Minidrivers Rückruffunktion verarbeitet ein USB-Paket.
Syntax
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
)
{...}
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.
CurrentFrameContext
Zeigen Sie auf den Framekontext des Kamera-Minidrivers.
SyncPacket
Zeiger auf eine USBD_ISO_PACKET_DESCRIPTOR Struktur aus der Synchronisierungspipeline. Dieser Wert ist NULL-, wenn die Schnittstelle nur über eine Striche verfügt.
SyncBuffer
Zeigen Sie auf die Daten für das SyncPacket-.
DataPacket
Gibt den isochronen Paketdeskriptor aus der Datenpipeline an.
DataBuffer
Zeiger auf DataPacket.
FrameComplete
Zeigen Sie auf einen BOOLESCHEN Wert, den der Kamera-Minidriver festlegt, um anzugeben, ob es sich um das erste Datenpaket für einen neuen Videoframe handelt.
PacketFlag
Zeigen Sie auf einen Wert, den der Minidriver so festlegt, dass er den Inhalt des aktuellen Frames angibt. Er sollte auf einen der folgenden Werte festgelegt werden:
Flagge | Bedeutung |
---|---|
USBCAMD_PROCESSPACKETEX_DropFrame | Der aktuelle Frame ist nicht verwüstet. Das gelesene IRP sollte wiederverwendet werden. |
USBCAMD_PROCESSPACKETEX_NextFrameIsStill | Der Frame ist ein stilles Bild. |
USBCAMD_PROCESSPACKETEX_CurrentFrameIsStill | Der aktuelle Frame ist für den noch anheften. |
ValidDataOffset
Zeiger auf einen ULONG-Wert, der einen Offset vom Anfang des Pakets angibt. USBCAMD sollte die Kopie von diesem Offset starten. Dadurch wird die zusätzliche Pufferkopie im Fall eines In-Band-Signals entfernt. Wenn die Kamera keine In-Band-Signalisierung verwendet, sollte ValidDataOffset- auf Null festgelegt werden.
Rückgabewert
Diese Funktion gibt die Anzahl der Bytes zurück, die kopiert werden sollen.
Bemerkungen
Der Minidriver sollte seine CamProcessUSBPacketEx Funktion so schnell wie möglich abschließen. Die Bildverarbeitung sollte auf die CamProcessRawVideoFrameEx--Funktion zurückgestellt werden.
Diese Rückruffunktion wird nur mit isochronen Rohren (Video oder streaming) verwendet.
Die ursprüngliche USBCAMD ruft CamProcessUSBPacketExnicht auf.
Diese Funktion ist optional.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Desktop |
Header- | usbcamdi.h (include Usbcamdi.h) |
IRQL- | DISPATCH_LEVEL |