PFNUSBCAMD_WaitOnDeviceEvent función de devolución de llamada (usbcamdi.h)

El servicio USBCAMD_WaitOnDeviceEvent se usa para realizar una lectura desde la canalización de interrupción si la cámara tiene una canalización de interrupción para las notificaciones de eventos externos.

Sintaxis

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
)
{...}

Parámetros

[in] DeviceContext

Puntero al contexto específico del dispositivo.

[in] PipeIndex

Especifica el índice de la canalización de interrupción.

[in] Buffer

Puntero al búfer de lectura.

[in] BufferLength

Longitud del búfer de lectura, en bytes.

[in] EventComplete

Puntero a un minidriver de cámara definido CommandCompleteFunction, al que se llama cuando se completa la lectura de interrupción Este valor puede ser NULL.

[in] EventContext

Puntero a un bloque de memoria, que se pasa como argumento al minidriver de cámara definido CommandCompleteFunction.

[in] LoopBack

Especifica si USBCAMD es volver a enviar otra solicitud de lectura a la canalización de interrupción cada vez que se completa una lectura de interrupción. Establecer en TRUE

Valor devuelto

USBCAMD_WaitOnDeviceEvent devuelve STATUS_SUCCESS si la llamada se realizó correctamente. Otros códigos de error posibles son:

Código devuelto Descripción
STATUS_FILE_CLOSED Se ha quitado el dispositivo.
STATUS_INVALID_PARAMETER USBCAMD puede devolver STATUS_INVALID_PARAMETER por varios motivos, entre los que se incluyen: El valor pasado en el argumento PipeIndex no es válido, el tipo de la canalización especificada por el argumento PipeIndex representa un tipo de canalización no válido, ya existe una solicitud masiva de lectura y escritura o el argumento Buffer es NULL. La longitud especificada en el argumento BufferLength es menor que el tamaño máximo del paquete.
STATUS_PENDING El elemento de trabajo del evento se aplaza.
STATUS_INSUFFICIENT_RESOURCES No hay recursos suficientes para asignar un elemento de trabajo para leer desde la canalización.

Comentarios

El escenario de uso típico de esta función es una cámara con un botón de instantánea y una canalización de interrupción asociada al botón. Cuando un usuario presiona el botón de instantánea, se satisface la solicitud de lectura de la canalización de interrupción y se vuelve a llamar al minidriver de la cámara. Si el minidriver de cámara establece USBCAMD_CamControlFlag_EnableDeviceEvents en el argumento CamControlFlag durante la llamada USBCAMD_InitializeNewInterface , también se notifica al monitor STI el evento de instantánea.

USBCAMD_WaitOnDeviceEvent no está disponible en USBCAMD versión 1.0.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado usbcamdi.h (incluye Usbcamdi.h)

Consulte también

CommandCompleteFunction

USBCAMD_INTERFACE

USBCAMD_InitializeNewInterface