Partager via


PCAM_PROCESS_RAW_FRAME_ROUTINE fonction de rappel (usbcamdi.h)

[CamProcessRawVideoFrame n’est pas pris en charge et peut être modifié ou indisponible à l’avenir. Utilisez plutôt CamProcessRawVideoFrameEx. ]

La fonction de rappel CamProcessRawVideoFrame d’un minidriver d’appareil photo décode une image vidéo brute.

Syntaxe

PCAM_PROCESS_RAW_FRAME_ROUTINE PcamProcessRawFrameRoutine;

NTSTATUS PcamProcessRawFrameRoutine(
  PDEVICE_OBJECT BusDeviceObject,
  PVOID DeviceContext,
  PVOID FrameContext,
  PVOID FrameBuffer,
  ULONG FrameLength,
  PVOID RawFrameBuffer,
  ULONG RawFrameLength,
  ULONG NumberOfPackets,
  PULONG BytesReturned
)
{...}

Paramètres

BusDeviceObject

Pointeur vers l’objet d’appareil du minidriver de l’appareil photo créé par le hub USB.

DeviceContext

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

FrameContext

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

FrameBuffer

Pointeur vers la mémoire tampon qui reçoit la trame vidéo finale traitée. Pour plus d’informations sur la façon dont USBCAMD utilise ce paramètre, consultez la section Remarques.

FrameLength

Spécifie la longueur de la mémoire tampon de frame (à partir de la demande de lecture d’origine) en octets.

RawFrameBuffer

Pointeur vers la mémoire tampon contenant les paquets USB reçus. Pour plus d’informations sur la façon dont USBCAMD utilise ce paramètre, consultez la section Remarques.

RawFrameLength

Spécifie la longueur de RawFrameBuffer en octets.

NumberOfPackets

Spécifie le nombre de paquets USB reçus dans RawFrameBuffer.

BytesReturned

Pointeur vers le nombre d’octets transférés. Le minidriver doit le définir sur zéro s’il rencontre des erreurs pendant le traitement, comme décrit dans Data Flow Utilisation de canaux isochronous. Pour plus d’informations sur la façon dont USBCAMD utilise ce paramètre, consultez la section Remarques.

Valeur retournée

CamProcessRawVideoFrame retourne STATUS_SUCCESS ou un code d’erreur approprié.

Remarques

Avant qu’USBCAMD appelle le rappel CamProcessRawVideoFrame du minidriver, il définit le premier DWORD dans la mémoire tampon vers lequel pointe le paramètre FrameBuffer sur la valeur 0xdeadbeef. Après avoir appelé le rappel CamProcessRawVideoFrame du minidriver, USBCAMD vérifie le premier DWORD dans la mémoire tampon vers lequel pointe le paramètre FrameBuffer pour la valeur 0xdeadbeef afin de déterminer si CamProcessRawVideoFrame a correctement copié l’image vidéo de la mémoire tampon pointée par le paramètre RawFrameBuffer dans la mémoire tampon pointée par le paramètre FrameBuffer .

Les minidrivers d’appareil photo qui doivent maintenir la compatibilité descendante avec l’USBCAMD d’origine doivent utiliser la structure USBCAMD_DEVICE_DATA et ses fonctions de rappel associées (c’est-à-dire les fonctions de rappel qui ne contiennent pas le suffixe « Ex »).

Cette fonction est facultative.

Configuration requise

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

Voir aussi

CamProcessRawVideoFrameEx