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 dispose d’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 de caméra défini 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, passé en tant qu’argument au minidriver de la caméra définie 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 de retour
USBCAMD_WaitOnDeviceEvent retourne STATUS_SUCCESS si l’appel a réussi. Voici d’autres codes d’erreur possibles :
Retourner le code | Description |
---|---|
STATUS_FILE_CLOSED | L’appareil a été supprimé. |
STATUS_INVALID_PARAMETER | USBCAMD peut retourner STATUS_INVALID_PARAMETER pour plusieurs raisons, notamment : la valeur passée 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 requête 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 | Il existe des ressources insuffisantes pour allouer un élément de travail à lire à partir du canal. |
Remarques
Le scénario d’utilisation classique de cette fonction est une caméra avec un bouton d’instantané et un canal d’interruption associé au bouton. Lorsqu’un utilisateur appuie sur le bouton d’instantané, la demande de lecture sur le canal d’interruption est satisfaite et le minidriver de la caméra est rappelé. Si le minidriver de caméra définit USBCAMD_CamControlFlag_EnableDeviceEvents dans l’argument CamControlFlag pendant l’appel USBCAMD_InitializeNewInterface, le moniteur STI est également averti de l’événement d’instantané.
USBCAMD_WaitOnDeviceEvent n’est pas disponible dans USBCAMD version 1.0.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Bureau |
d’en-tête | usbcamdi.h (include Usbcamdi.h) |