各种操作系统上的 USB 传输的最大大小

针对 Windows XP 的支持已终止

Microsoft 已于 2014 年 4 月 8 日终止了针对 Windows XP 的支持。该更改已影响到您的软件更新和安全选项。 了解这一措施对于您的含义以及如何继续保持受保护状态。

针对 Windows Server 2003 的支持已于 2015 年 7 月 14 日终止。

Microsoft 已于 2015 年 7 月 14 日终止了对于 Windows Server 2003 的支持。该更改已影响到您的软件更新和安全选项。 了解这一措施对于您的含义以及如何继续保持受保护状态。

概要
本文介绍各种 Microsoft Windows 操作系统上的 USB 传输的最大大小。

Microsoft Windows 2000

在 Microsoft Windows 2000 上,USB 传输的最大大小由为 USB 设备加载的设备驱动程序决定。通过下列方式之一来确定 USB 传输的最大大小:
  • 当设备驱动程序通过 URB_FUNCTION_SELECT_CONFIGURATION 函数选择设备的配置时。
  • 当设备驱动程序通过 URB_FUNCTION_SELECT_INTERFACE 函数选择设备的替代接口时。
在大多数情况下,Windows 2000 上的 USB 传输没有硬性大小限制(除了客户端驱动程序定义的限制之外)。

Microsoft Windows XP 和 Microsoft Windows Server 2003

在 Microsoft Windows XP 和 Microsoft Windows Server 2003 上,USB 传输的最大大小由 USB 主控制器的微型端口驱动程序或 USB 端口驱动程序 (Usbport.sys) 定义。(USB 传输的最大大小不是由设备的客户端驱动程序定义。)如果您使用的传输大小超出 USB 传输的最大大小,则传输请求可能失败或在蓝屏上可能出现停止错误。

在 Windows XP 和 Windows Server 2003 上,当大容量终结点的最大传输大小小于或等于 4 KB 时,端口驱动程序会将事务分成多次传输。从理论上说,此行为可以使这些终结点的最大 USB 传输大小不受限制。不过,Microsoft 尚未测试过巨型传输,Microsoft 建议不要使用巨型传输。

注意:在 Windows XP 和 Windows Server 2003 上,USB 传输的最大大小当前不会传播到客户端驱动程序。在将来的 Windows 版本中,可能会对此行为进行更改。
更多信息

USB 传输的最大大小

Windows 2000

传输类型最大传输大小报告的错误
控制终结点 04 KBUSBD_STATUS_INVALID_PARAMETER
控制(其他终结点)64 KB不确定
中断不确定
UHCI 大容量不确定
OHCI 大容量不确定(请参见备注)
请注意下列有关在 Windows 2000 上进行传输的事项:
  • 如果您在全速常时等量终结点上使用的传输大小超出了每个 USB 请求块 (URB) 255 个数据包的限制,则可能会收到以下错误消息:
    USBD_STATUS_INVALID_PARAMETER
  • 在您编写驱动程序时,请考虑到使用大型传输时性能和资源之间的权衡。
  • 出于开放式主控制器接口 (OHCI) 驱动程序带来的资源限制的原因,Microsoft 建议不使用巨型批量传输或中断传输。
  • 默认控制终结点上的请求大小限制为 4 KB,以便与早期版本的驱动程序兼容。USB 规格将其他控制传输限制为 64 KB。然而,对于非控制终结点的 USB 驱动程序堆栈,不存在任何特定限制。在非控制终结点上指定大小超过 64 KB 的传输所产生的结果不确定。
  • 当您使用 URB_FUNCTION_SELECT_CONFIGURATION 函数设置传输的最大大小时,Windows 2000 上的复合设备所具有的最大传输大小为 4 KB。要解决此限制,驱动程序必须使用 URB_FUNCTION_SELECT_INTERFACE 函数。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    200977不能设置 USB 复合设备的最大传输大小

Windows XP 和 Windows Server 2003

下表显示的是理论限制,而不是实际限制。

注意:Microsoft 不建议使用巨型传输。
传输类型最大传输大小报告的错误
控制终结点 04 KBUSBD_STATUS_INVALID_PARAMETER
控制(其他终结点)64 KB检测错误 0xFE
中断无限制
UHCI 大容量无限制
OHCI 大容量256K检测错误 0xFE
EHCI 大容量3344K检测错误 0xFE
全速常时等量终结点限制为每个 URB 255 个数据包。高速常时等量终结点限制为每个 URB 1024 个数据包。如果您使用的传输大小超出这些限制,将收到以下 USBD 错误:
USBD_STATUS_INVALID_PARAMETER
excessive exceed huge
属性

文章 ID:832430 - 上次审阅时间:01/29/2008 05:42:00 - 修订版本: 2.2

Microsoft Windows Server 2003, 64-Bit Datacenter Edition, Microsoft Windows Server 2003, Enterprise x64 Edition, Microsoft Windows Server 2003 Datacenter Edition, Microsoft Windows Server 2003 Enterprise Edition, Microsoft Windows Server 2003 Standard Edition, Microsoft Windows Server 2003 Web Edition, Microsoft Windows XP Professional x64 Edition, Microsoft Windows XP Home Edition, Microsoft Windows XP Professional Edition, Microsoft Windows 2000 Advanced Server, Microsoft Windows 2000 Datacenter Server, Microsoft Windows 2000 Professional Edition, Microsoft Windows 2000 Server

  • kbinfo KB832430
反馈