Partager via


PCAM_PROCESS_PACKET_ROUTINE_EX fonction de rappel (usbcamdi.h)

Un minidriver de caméra CamProcessUSBPacketEx fonction de rappel traite un paquet USB.

Syntaxe

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
)
{...}

Paramètres

BusDeviceObject

Pointeur vers l’objet appareil de minidriver de la caméra créé par le hub USB.

DeviceContext

Pointeur vers le contexte de l’appareil photo minidriver.

CurrentFrameContext

Pointeur vers le contexte d’image du minidriver de la caméra.

SyncPacket

Pointeur vers une structure USBD_ISO_PACKET_DESCRIPTOR à partir du canal de synchronisation. Cette valeur est NULL si l’interface n’a qu’un seul canal.

SyncBuffer

Pointeur vers les données du SyncPacket.

DataPacket

Spécifie le descripteur de paquet isochronous à partir du canal de données.

DataBuffer

Pointeur vers DataPacket.

FrameComplete

Pointeur vers une valeur BOOLEAN définie par le minidriver de la caméra pour indiquer s’il s’agit du premier paquet de données pour une nouvelle image vidéo.

PacketFlag

Pointeur vers une valeur définie par le minidriver pour indiquer le contenu du frame actuel. Elle doit être définie sur l’une des valeurs suivantes :

Drapeau Signification
USBCAMD_PROCESSPACKETEX_DropFrame Le frame actuel n’est pas modifiable. L’IRP de lecture doit être recyclé.
USBCAMD_PROCESSPACKETEX_NextFrameIsStill Le cadre est une image toujours.
USBCAMD_PROCESSPACKETEX_CurrentFrameIsStill Le cadre actuel est destiné à l’épingle encore.

ValidDataOffset

Pointeur vers une valeur ULONG qui indique un décalage à partir du début du paquet. USBCAMD doit démarrer la copie à partir de ce décalage. Cela élimine la copie de mémoire tampon supplémentaire dans le cas d’un signal en bande. Si l’appareil photo n’utilise pas de signalisation en bande, ValidDataOffset doit être défini sur zéro.

Valeur de retour

Cette fonction retourne le nombre d’octets qui doivent être copiés.

Remarques

Le minidriver doit terminer sa fonction CamProcessUSBPacketEx le plus rapidement possible. Le traitement d’images doit être reporté à la fonction CamProcessRawVideoFrameEx.

Cette fonction de rappel est utilisée uniquement avec des canaux isochrones (vidéo ou encore en streaming).

L’USBCAMD d’origine n’appelle pas CamProcessUSBPacketEx.

Cette fonction est facultative.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête usbcamdi.h (include Usbcamdi.h)
IRQL DISPATCH_LEVEL

Voir aussi

CamProcessRawVideoFrameEx

USBD_ISO_PACKET_DESCRIPTOR