Freigeben über


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

Siehe auch

CamProcessRawVideoFrameEx

USBD_ISO_PACKET_DESCRIPTOR