Partager via


PCAM_PROCESS_RAW_FRAME_ROUTINE_EX fonction de rappel (usbcamdi.h)

Une caméra minidriver CamProcessRawVideoFrameEx fonction de rappel décode une image vidéo brute.

Syntaxe

PCAM_PROCESS_RAW_FRAME_ROUTINE_EX PcamProcessRawFrameRoutineEx;

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

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.

FrameContext

Pointeur vers le contexte de trame du minidriver.

FrameBuffer

Pointeur vers la mémoire tampon qui reçoit la trame vidéo traitée finale. 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 d’image (à 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 définir cette valeur sur zéro s’il rencontre des erreurs pendant le traitement, comme décrit dans flux de données à l’aide de canaux isochrones. Pour plus d’informations sur la façon dont USBCAMD utilise ce paramètre, consultez la section Remarques.

ActualRawFrameLength

Contient la longueur de la mémoire tampon réelle reçue de la caméra. Cette valeur est spécifiée en octets.

StreamNumber

Indique le numéro de flux auquel ce frame est associé.

Valeur de retour

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

Remarques

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

Cette fonction n’est pas appelée si l’un des bits suivants est défini dans l’argument CamControlFlag passé à la fonction USBCAMD_InitializeNewInterface :

USBCAMD_CamControlFlag_NoVideoRawProcessing

USBCAMD_CamControlFlag_NoStillRawProcessing

USBCAMD efface l’indicateur d’options d’en-tête de flux avant de passer le cadre brut au minidriver. L’indicateur par défaut est uniquement des images clés. Le minidriver de caméra doit définir les indicateurs d’option d’en-tête de flux de manière appropriée s’il doit indiquer quoi que ce soit d’autre que les images clés.

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

Cette fonction est facultative.

Exigences

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