fonction de rappel PCAM_PROCESS_PACKET_ROUTINE_EX (usbcamdi.h)

La fonction de rappel CamProcessUSBPacketEx d’un minidriver de caméra 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 périphérique du minidriver de la caméra créé par le hub USB.

DeviceContext

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

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 de 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 :

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

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 avoir la valeur 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 aussi rapidement que possible. Le traitement d’image doit être différé à la fonction CamProcessRawVideoFrameEx .

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

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

Cette fonction est facultative.

Configuration requise

   
Plateforme cible Desktop (Expérience utilisateur)
En-tête usbcamdi.h (include Usbcamdi.h)
IRQL DISPATCH_LEVEL

Voir aussi

CamProcessRawVideoFrameEx

USBD_ISO_PACKET_DESCRIPTOR