función WinUsb_ReadIsochPipeAsap (winusb.h)
La función WinUsb_ReadIsochPipeAsap envía una solicitud que lee datos de un punto de conexión IN isócrono.
Sintaxis
BOOL WinUsb_ReadIsochPipeAsap(
[in] WINUSB_ISOCH_BUFFER_HANDLE BufferHandle,
[in] ULONG Offset,
[in] ULONG Length,
[in] BOOL ContinueStream,
[in] ULONG NumberOfPackets,
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
Desplazamiento en el búfer relativo al inicio de la transferencia.
[in] Length
Longitud en bytes del búfer de transferencia.
[in] ContinueStream
Indica que la transferencia solo debe enviarse si se puede programar en el primer fotograma después de la última transferencia pendiente.
[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 la que apunta IsoPacketDescriptors.
IsoPacketDescriptors
Matriz de USBD_ISO_PACKET_DESCRIPTOR que recibe los detalles de cada paquete isócrono en la transferencia.
[in, optional] Overlapped
Puntero a una estructura SUPERPUESTA usada para las operaciones asincrónicas.
Valor devuelto
WinUsb_ReadIsochPipeAsap 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.
Si el autor de la llamada establece ContinueStream en TRUE, se produce un error en la transferencia si Winusb.sys no puede programar la transferencia para continuar la secuencia sin quitar uno o varios fotogramas.
Observaciones
WinUsb_ReadIsochPipeAsap permite que la pila del controlador USB elija el número de fotograma inicial de la transferencia. Si una o varias transferencias ya están pendientes en el punto de conexión, la transferencia se programará para el número de fotograma inmediatamente después del último número de fotograma de la última transferencia pendiente actualmente.
WinUsb_ReadIsochPipeAsap paqueteiza el búfer de transferencia para que, en cada intervalo, 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 (devueltos por WinUsb_QueryPipeEx) * 8 /interval.
Debido al empaquetado de transferencia usado en la interfaz del modo kernel subyacente, la notificación de latencia más baja a una aplicación o controlador es de 1 ms intervalos.
Requisitos
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ócrónicas USB desde una aplicación de escritorio winUSB