WinUsb_WriteIsochPipeAsap 函数 (winusb.h)

WinUsb_WriteIsochPipeAsap提交将缓冲区内容写入常时等量 OUT 终结点的请求。

语法

BOOL WinUsb_WriteIsochPipeAsap(
  [in]           WINUSB_ISOCH_BUFFER_HANDLE BufferHandle,
  [in]           ULONG                      Offset,
  [in]           ULONG                      Length,
  [in]           BOOL                       ContinueStream,
  [in, optional] LPOVERLAPPED               Overlapped
);

参数

[in] BufferHandle

传输缓冲区的不透明句柄,该句柄由上一次调用 WinUsb_RegisterIsochBuffer注册。

[in] Offset

相对于开始传输的缓冲区偏移量。

[in] Length

传输缓冲区的长度(以字节为单位)。

[in] ContinueStream

指示仅当传输可以安排在上一个挂起的传输之后的第一帧时,才应提交传输。

[in, optional] Overlapped

指向用于异步操作 的 OVERLAPPED 结构的指针。

返回值

如果操作成功,WinUsb_WriteIsochPipeAsap返回 TRUE。 否则,此函数返回 FALSE,调用方可以通过调用 GetLastError 检索记录的错误。

如果调用方将 ContinueStream 设置为 TRUE,则如果 Winusb.sys 无法计划传输以在不删除一个或多个帧的情况下继续流,则传输将失败。

注解

WinUsb_WriteIsochPipeAsap 允许 USB 驱动程序堆栈选择传输的起始帧编号。 如果终结点上已挂起一个或多个传输,则传输将紧跟在当前挂起的最后一个传输的最后一个帧编号之后安排传输。

WinUsb_WriteIsochPipeAsap 对传输缓冲区进行数据包化,以便在每 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 函数