Compartir a través de


función WinUsb_ReadIsochPipe (winusb.h)

La función WinUsb_ReadIsochPipe lee datos de un punto de conexión IN isócrono.

Sintaxis

BOOL WinUsb_ReadIsochPipe(
  [in]           WINUSB_ISOCH_BUFFER_HANDLE  BufferHandle,
  [in]           ULONG                       Offset,
  [in]           ULONG                       Length,
  [in, out]      PULONG                      FrameNumber,
  [in]           ULONG                       NumberOfPackets,
  [out]          PUSBD_ISO_PACKET_DESCRIPTOR IsoPacketDescriptors,
  [in, optional] LPOVERLAPPED                Overlapped
);

Parámetros

[in] BufferHandle

Identificador opaco del búfer de transferencia registrado por una llamada anterior a WinUsb_RegisterIsochBuffer.

[in] Offset

Desfase en el búfer con respecto al inicio de la transferencia.

[in] Length

Longitud en bytes del búfer de transferencia.

[in, out] FrameNumber

En la entrada, indica el número de fotograma inicial de la transferencia. En la salida, contiene el número de fotograma del fotograma que sigue al último fotograma usado en la transferencia.

[in] NumberOfPackets

Número total de paquetes isócronos necesarios para contener el búfer de transferencia. También indica el número de elementos de la matriz a los que apunta IsoPacketDescriptors.

[out] IsoPacketDescriptors

Matriz de estructuras de USBD_ISO_PACKET_DESCRIPTOR . Una vez completada la transferencia, cada elemento contiene el estado y el tamaño del paquete isócrono.

[in, optional] Overlapped

Puntero a una estructura SUPERPUESTA usada para las operaciones asincrónicas.

Valor devuelto

WinUsb_ReadIsochPipe devuelve TRUE si la operación se realiza correctamente. De lo contrario, esta función devuelve FALSE y el autor de la llamada puede recuperar el error registrado llamando a GetLastError.

Comentarios

WinUsb_ReadIsochPipe paqueteiza el búfer de transferencia para que, en cada intervalo de 1 ms, el host pueda recibir los bytes máximos permitidos por intervalo. El descriptor de punto de conexión especifica los bytes máximos para los puntos de conexión completos y de alta velocidad, y el descriptor complementario del punto de conexión para los puntos de conexión SuperSpeed. Si el autor de la llamada envía varias solicitudes de lectura para transmitir datos desde el dispositivo, el tamaño de la transferencia debe ser un múltiplo de los bytes máximos por intervalo (devuelto por WinUsb_QueryPipeEx) * 8 /interval.

Debido al empaquetado de transferencia usado en la interfaz en modo kernel subyacente, la notificación de latencia más baja a una aplicación o controlador es de 1 ms intervalos.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8.1
Servidor mínimo compatible Windows Server 2012 R2
Plataforma de destino Universal
Encabezado winusb.h (incluya Winusb.h)
Library Winusb.lib
Archivo DLL Winusb.dll

Consulte también

Envío de transferencias isócronos USB desde una aplicación de escritorio winUSB

Funciones winUSB