PCAM_PROCESS_PACKET_ROUTINE_EX Rückruffunktion (usbcamdi.h)
Die Rückruffunktion CamProcessUSBPacketEx eines Kamera-Minitreibers 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 Kamera-Minitreibers, das vom USB-Hub erstellt wurde.
DeviceContext
Zeiger auf den Gerätekontext des Kamera-Minitreibers.
CurrentFrameContext
Zeiger auf den Framekontext des Kamera-Minitreibers.
SyncPacket
Zeiger auf eine USBD_ISO_PACKET_DESCRIPTOR-Struktur aus der Synchronisierungspipe. Dieser Wert ist NULL , wenn die Schnittstelle nur über eine Pipe verfügt.
SyncBuffer
Zeiger auf die Daten für das SyncPacket.
DataPacket
Gibt den isochronen Paketdeskriptor aus data pipe an.
DataBuffer
Zeiger auf DataPacket.
FrameComplete
Zeiger auf einen BOOLESCHEN Wert, den der Kamera-Minitreiber festlegt, um anzugeben, ob dies das erste Datenpaket für einen neuen Videoframe ist.
PacketFlag
Zeiger auf einen Wert, den der Minitreiber festlegt, um den Inhalt des aktuellen Frames anzugeben. Es sollte auf einen der folgenden Werte festgelegt werden:
Flag | Bedeutung |
---|---|
USBCAMD_PROCESSPACKETEX_DropFrame | Der aktuelle Frame kann nicht verwüstet werden. Der Lese-IRP sollte wiederverwendet werden. |
USBCAMD_PROCESSPACKETEX_NextFrameIsStill | Der Frame ist ein Standbild. |
USBCAMD_PROCESSPACKETEX_CurrentFrameIsStill | Der aktuelle Frame ist für die noch-Pin. |
ValidDataOffset
Zeiger auf einen ULONG-Wert, der einen Offset vom Anfang des Pakets angibt. USBCAMD sollte die Kopie von diesem Offset starten. Dadurch entfällt die zusätzliche Pufferkopie im Fall eines In-Band-Signals. 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.
Hinweise
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 für isochrone Pipes (Video- oder Noch-Streaming) verwendet.
Die ursprüngliche USBCAMD ruft CamProcessUSBPacketEx nicht auf.
Diese Funktion ist optional.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | usbcamdi.h (einschließlich Usbcamdi.h) |
IRQL | DISPATCH_LEVEL |