Partager via


PCAM_PROCESS_PACKET_ROUTINE_EX fonction de rappel (usbcamdi.h)

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

DeviceContext

Pointeur vers le contexte d’appareil du minidriver de l’appareil photo.

CurrentFrameContext

Pointeur vers le contexte du cadre du minidriver de l’appareil photo.

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 paquets isochronieux du canal de données.

DataBuffer

Pointeur vers DataPacket.

FrameComplete

Pointeur vers une valeur BOOLEAN que le minidriver de l’appareil photo définit pour indiquer s’il s’agit du premier paquet de données pour une nouvelle image vidéo.

PacketFlag

Pointeur vers une valeur que le minidriver définit pour indiquer le contenu du cadre actuel. Il doit être défini sur l’une des valeurs suivantes :

Indicateur Signification
USBCAMD_PROCESSPACKETEX_DropFrame Le cadre actuel n’est pas modifiable. Le IRP lu devrait être recyclé.
USBCAMD_PROCESSPACKETEX_NextFrameIsStill Le cadre est une image fixe.
USBCAMD_PROCESSPACKETEX_CurrentFrameIsStill Le cadre actuel est pour l’épingle fixe.

ValidDataOffset

Pointeur vers une valeur ULONG qui indique un décalage par rapport au début du paquet. USBCAMD doit démarrer la copie à partir de ce décalage. Cela élimine la copie tampon supplémentaire dans le cas d’un signal en bande. Si la caméra n’utilise pas la signalisation in-band, ValidDataOffset doit être défini sur zéro.

Valeur retournée

Cette fonction retourne le nombre d’octets à copier.

Remarques

Le minidriver doit terminer sa fonction CamProcessUSBPacketEx le plus rapidement possible. Le traitement des images doit être différé à la fonction CamProcessRawVideoFrameEx .

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

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

Cette fonction est facultative.

Configuration requise

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

Voir aussi

CamProcessRawVideoFrameEx

USBD_ISO_PACKET_DESCRIPTOR