Partager via


PFNUSBCAMD_WaitOnDeviceEvent fonction de rappel (usbcamdi.h)

Le service USBCAMD_WaitOnDeviceEvent est utilisé pour effectuer une lecture à partir du canal d’interruption si la caméra a un canal d’interruption pour les notifications d’événements externes.

Syntaxe

PFNUSBCAMD_WaitOnDeviceEvent PfnusbcamdWaitondeviceevent;

NTSTATUS PfnusbcamdWaitondeviceevent(
  [in] PVOID DeviceContext,
  [in] ULONG PipeIndex,
  [in] PVOID Buffer,
  [in] ULONG BufferLength,
  [in] PCOMMAND_COMPLETE_FUNCTION EventComplete,
  [in] PVOID EventContext,
  [in] BOOLEAN LoopBack
)
{...}

Paramètres

[in] DeviceContext

Pointeur vers un contexte spécifique à l’appareil.

[in] PipeIndex

Spécifie l’index du canal d’interruption.

[in] Buffer

Pointeur vers la mémoire tampon de lecture.

[in] BufferLength

Longueur de la mémoire tampon de lecture, en octets.

[in] EventComplete

Pointeur vers un minidriver d’appareil photo défini par CommandCompleteFunction, qui est appelé lorsque la lecture d’interruption est terminée Cette valeur peut être NULL.

[in] EventContext

Pointeur vers un bloc de mémoire, qui est passé en tant qu’argument au minidriver de l’appareil photo défini par CommandCompleteFunction.

[in] LoopBack

Spécifie si USBCAMD doit renvoyer une autre demande de lecture au canal d’interruption chaque fois qu’une lecture d’interruption est terminée. Défini sur TRUE

Valeur retournée

USBCAMD_WaitOnDeviceEvent retourne STATUS_SUCCESS si l’appel a réussi. Voici d’autres codes d’erreur possibles :

Code de retour Description
STATUS_FILE_CLOSED Le périphérique a été déconnecté.
STATUS_INVALID_PARAMETER USBCAMD peut retourner STATUS_INVALID_PARAMETER pour plusieurs raisons, notamment : La valeur transmise dans l’argument PipeIndex n’est pas valide, le type du canal spécifié par l’argument PipeIndex représente un type de canal non valide, une demande en lecture/écriture en bloc existe déjà ou l’argument Buffer est NULL. La longueur spécifiée dans l’argument BufferLength est inférieure à la taille maximale du paquet.
STATUS_PENDING L’élément de travail d’événement est différé.
STATUS_INSUFFICIENT_RESOURCES Les ressources sont insuffisantes pour allouer un élément de travail à lire à partir du canal.

Remarques

Le scénario d’utilisation classique pour cette fonction est une caméra avec un bouton instantané et un canal d’interruption associé au bouton. Lorsqu’un utilisateur appuie sur le bouton instantané, la demande de lecture sur le canal d’interruption est satisfaite et le minidriver de l’appareil photo est rappelé. Si le minidriver de la caméra définit USBCAMD_CamControlFlag_EnableDeviceEvents dans l’argument CamControlFlag pendant l’appel de USBCAMD_InitializeNewInterface, le moniteur STI est également averti de l’événement instantané.

USBCAMD_WaitOnDeviceEvent n’est pas disponible dans USBCAMD version 1.0.

Configuration requise

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

Voir aussi

CommandCompleteFunction

USBCAMD_INTERFACE

USBCAMD_InitializeNewInterface