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) |