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 |