WinUsb_ReadIsochPipe 函数 (winusb.h)
WinUsb_ReadIsochPipe函数从常时等量 IN 终结点读取数据。
语法
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
);
参数
[in] BufferHandle
上一次调用WinUsb_RegisterIsochBuffer注册的传输缓冲区的不透明句柄。
[in] Offset
缓冲区中相对于开始传输的偏移量。
[in] Length
传输缓冲区的长度(以字节为单位)。
[in, out] FrameNumber
输入时,指示传输的起始帧编号。 在输出中,包含传输中使用的最后一帧之后的帧的帧编号。
[in] NumberOfPackets
保存传输缓冲区所需的常时常量数据包总数。 还指示 IsoPacketDescriptors 指向的数组中的元素数。
[out] IsoPacketDescriptors
USBD_ISO_PACKET_DESCRIPTOR 结构的数组。 传输完成后,每个元素都包含常时常量数据包的状态和大小。
[in, optional] Overlapped
指向用于异步操作 的 OVERLAPPED 结构的指针。
返回值
如果操作成功,WinUsb_ReadIsochPipe返回 TRUE。 否则,此函数返回 FALSE,调用方可以通过调用 GetLastError 检索记录的错误。
注解
WinUsb_ReadIsochPipe 将传输缓冲区数据包化,以便在每 1 毫秒间隔内,主机可以接收每个间隔允许的最大字节数。 最大字节数由完整终结点和高速终结点的终结点描述符指定,以及 SuperSpeed 终结点的终结点配套描述符指定。 如果调用方提交多个读取请求以从设备流式传输数据,则传输大小应是 (WinUsb_QueryPipeEx) * 8 / interval 返回的每个间隔最大 字节数的 倍数。
由于基础内核模式接口中使用的传输打包,应用程序或驱动程序的最低延迟通知间隔为 1 毫秒。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8.1 |
最低受支持的服务器 | Windows Server 2012 R2 |
目标平台 | 通用 |
标头 | winusb.h (包括 Winusb.h) |
Library | Winusb.lib |
DLL | Winusb.dll |