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

另请参阅

发送来自 UWP 桌面应用的 USB 常时等量传输

WinUSB 函数