USB大容量存储BOT
+ -

BOT 命令状态包CSW

2021-09-26 12 0

CSW 应从包的边界开始,在传输了 13 个字节以后结束, CSW 的说明如下表:

命令状态包(CSW)

struct CSW
{
    DWORD dCSWSignature;    // CSW的标识,固定值:53425355h (小端模式)
    DWORD dCSWTag;    //主机发送的一个命令块标识,设备需要原样作为dCSWTag(CSW中的一部分)再发送给Host;主要用于关联CSW到对应的CBW
    DWORD dCSWDataResidue;    //还需要传送的数据,此数据根据dCBWDataTransferLength-本次已经传送的数据得到 
    BYTE bCSWStatus;     //指示命令的执行状态。如果命令正确执行,bCSWStatus 返回0
};
  • dCSWSignature :帮助指明该数据包为 CSW 的信号标记,这个字段的值为 0x53425355 (小端),表示这是一个 CSW 。
  • dCSWTag :设备应将这个字段设置为接收到的相应 CBW 的 dCBWTag 字段值。
  • dCSTDataResidue :对于 DataOut ,设备应在这个字段报告 dCBWDataTransferLength 字段规定的要求数量与设备实际处理的数据量之差。对于 DataIn ,设备应在这个字段报告 dCBWDataTransferLength 字段规定的要求数量与设备实际发送的数据量之差。 dCSWResidue 的值不会超过 dCBWDataTransferLength 发送的值。
  • bCSWStatus :表示命令执行是否成功。 0 = 执行成功,非 0 表示失败,如下表:
描述
00h 命令通过(运行良好)
01h 命令失败
02h 状态错误
03 - 04h 保留(废弃)
05 - FFh 保留

0 篇笔记 写笔记

BOT 数据传输过程
按照USB规范,Bulk-Only 传输规范是系统也是通过默认管道(地址0 、端点 0 )进行枚举,枚举后重新分配地址,再次枚举。枚举后,实际工作仅仅使用批量( Bulk )端点传送数据 / 命令 / 状态,批量传输方式不受时间限制并能保证数据的完整性。在取得的端点描述符中包含了 Bulk-In 和......
BOT 命令状态包CSW
CSW 应从包的边界开始,在传输了 13 个字节以后结束, CSW 的说明如下表:struct CSW{ DWORD dCSWSignature; // CSW的标识,固定值:53425355h (小端模式) DWORD dCSWTag; //主机发送的一个命令块标......
BOT CBW和CSW数据例解析
读写数据抓包USB传输中:每一个传输包含一笔或多笔事务,每一笔事务又包含一个、两个或三个信息包。事务:Setup(设置)事务、IN(输入)事务、OUT(输出)事务信息包:令牌信息包、数据信息包、联络信息包传输|——>事务——>令牌信息包+数据信息包+联络信息包|——>事务——&......
BOT CBW和CSW的校验
Bulk-Only Protocol传输是通过主机向设备发送CBW请求,设备响应CBW返回CSW响应。Bulk-Only Protocol传输开始是从设备复位(MASS_STORAGE_RESET)之后开始的,设备在接收到CBW请求和主机收到CSW回应后,是需要对CBW和CSW进行拆包解析。CBW......
作者信息
USB中文网
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!