大容量存储设备可能无法在给定主机上工作的原因有两个。
最简单的原因是供应商和产品 ID 块。某些软件(例如 iTunes)会根据提供的供应商和产品 ID 阻止设备同步。这是一个非常基本的预防措施,很容易通过欺骗供应商/产品 ID 绕过。
特别是对于 Xbox 360,原因是 Xbox 360 SCSI 实现和 USB 设备驱动程序实现的组合。USB 大容量存储规范包含一个称为命令块包装器的结构,该结构包含一个成员 bCBWCBLength,它声明要执行的命令块的长度。根据规范,这可以合法地包含从 1 到 16 的值。
虽然命令块的长度可以合法地从 1 到 16,但 CDB 的传统长度是 6、10、12 或 16 字节 - 长度因命令而异。例如,TEST UNIT READY 命令是 6 字节,而 MODE SENSE 有 6 字节和 10 字节版本。
Xbox 360 碰巧以 10 个字节而不是 6 个字节发送某些命令,例如 TEST UNIT READY。对于具有较旧驱动程序的 USB 设备(如 Palm Pre 和 Android),这可能会导致问题,因为驱动程序不知道如何处理这些奇怪大小的 CDB。
最终问题是设备端驱动程序处理不佳和主机端奇怪的 SCSI 实现的混合。除非您是 Microsoft,否则解决方法是修改您的大容量存储驱动程序以处理奇怪大小的 CBW 长度字段。
关于仅批量与批量中断端点的观察只是一个巧合,与问题、解决方案或介于两者之间的任何事情无关。