USB调试笔记
+ -

USB设备通过BUSHOUND抓包IRP被取消USTS状态为0xC0010000

2022-07-15 31 0

通过BUSHOUND抓包内容为:

 16.0         CTL    80 06 00 02  00 00 20 00                            GET DESCRIPTOR    336us  
 16.0     32  IN     09 02 20 00  01 01 00 80  e1 09 04 00  00 02 08 06  .. .............   16ms  
                     50 00 07 05  82 02 00 02  00 07 05 01  02 00 02 00  P...............         
 16.0         URB    88 00 08 00  00 00 00 00  78 a3 50 08  73 2b 00 00  CONTROL TRANSFER    3us  
                     00 00 00 00  00 00 00 00  70 c9 67 01  8d d4 ff ff                           
                     0b 00 00 00  20 00 00 00  40 5a ec f4  8c d4 ff ff                           
                     00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00                           
                     00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00                           
                     02 00 00 00  01 00 00 00  b8 77 68 0c  8d d4 ff ff                           
                     b8 77 68 0c  8d d4 ff ff  88 13 fa ee  8c d4 ff ff                           
                     88 13 fa ee  8c d4 ff ff  00 00 00 00  00 00 00 00                           
                     80 06 00 02  00 00 20 00                                                     
 16.1         URB    80 00 09 00  00 00 01 c0  78 a3 50 08  73 2b 00 00  BULK/INT XFER      18sc  
                     00 00 00 00  00 00 00 00  20 ca 84 f2  8c d4 ff ff                           
                     00 00 00 00  00 00 00 00  58 f6 2c fe  8c d4 ff ff                           
                     20 95 f4 05  8d d4 ff ff  00 00 00 00  00 00 00 00                           
                     05 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00                           
                     00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00                           
                     00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00                           
                     00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00                           
 16           RESET                                                                         57us

可以看到,当使用16.1端点进行数据传输的时候出错,然后设备RESET了。
通过分析16.1的URB,可以判官此为批量传输或者为中断传输(BULK_OR_INTERRUPT_TRANSFER),已知设备为U盘,所以肯定为批量传输,并且端点地址为1,所以发送的数据为U盘BOTCBW命令。

使用本站的工具USB中断批量传输X64 URB数据在线分析:http://www.usbzh.com/tool/urb-bulk-or-interrupt.html 对该URB进行自动分析:

_URB_CONTROL_DESCRIPTOR_REQUEST        
_URB_HEADER    Hdr    
USHORT    Length    80 00 
USHORT    Function    09 00 
USBD_STATUS    Status    00 00 01 C0 
PVOID    UsbdDeviceHandle    78 A3 50 08 73 2B 00 00 
ULONG    UsbdFlags    00 00 00 00 
ULONG    reversed    00 00 00 00 

PVOID    Reserved    20 CA 84 F2 8C D4 FF FF 
ULONG    Reserved0    00 00 00 00 
ULONG    TransferBufferLength    00 00 00 00 
PVOID    TransferBuffer    58 F6 2C FE 8C D4 FF FF 
PMDL    TransferBufferMDL    20 95 F4 05 8D D4 FF FF 
PVOID    UrbLink    00 00 00 00 00 00 00 00 
_URB_HCD_AREA    hca    
PVOID    Reserved[8]
05 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 

USHORT    Reserved1    0NAN 0NAN 
UCHAR    Index    0NAN 
UCHAR    DescriptorType    0NAN 
USHORT    LanguageId    0NAN 0NAN 
USHORT    Reserved2    0NAN 0NAN

可以看到USBD_STATUS为0xC0010000,通过查询USTC表 http://www.usbzh.com/article/detail-645.html 可知为USBD_STATUS_CANCELED.原文内容为:
The USB stack reports this error whenever it completed a transfer because of an AbortPipe request from the client driver.
所以表示此IRP已经被取消了,取消的原因是因为端点abort了。

这通常发生在驱动程序发出URB_FUNCTION_ABORT_PIPE 或 URB_FUNCTION_RESET_PIPE 时,因为任何排队的 URB都被清除了。设备随后处于停止状态表明可能发生了意外复位或电源转换。

而后面的RESET表示设备复位RESET了。

0 篇笔记 写笔记

关于UVC摄像头指示灯的调试过程总结
最近遇到了一个很是奇怪的UVC摄像头指示灯问题,现象如下:上层应用是一个会议系统软件,当需要进行会议时,点击会议按钮添加会议。这时应用软件打开摄像头,并开始与服务器进行网络连接。当然由于摄像头的打开,摄像头指示灯点亮。上层应用软件与服务器连接后,进行会议界面。这时突然摄像头指示灯熄灭,但会议正常,摄......
UVC PTZ和扩展单元XU的过滤与分发调试笔记
在写这篇文章之前,我得首先感谢微软,感谢你的不严格,让我可以有空子可钻,不至于太过狼狈…记得看过一句话,开局一张图,内容全告编。我多么希望自己在UVC摄像头的调试过程中也可以瞎编乱造,这样不至于身心疲惫。至少保持着愉快的心情,吹吹牛,也是一件很开心的事。今日有一个需求,对UVC摄像头的请求进行......
U盘枚举失败-该设备无法启动(GET_MAX_LUN请求)
群里有人用STM32搞了一个U盘,但是U盘在插入电脑后在设备管理器是枚举失败。我让他看一下设备状态:又是熟悉的错误码10,表示设备启动失败。设备的启动失败,一般在设备获取描述符获取之后,初始会失败,我之前在弄USB虚拟鼠标的时候也遇到此类情况。不过由于这个设备是U盘,本人还没有研究USB存储协议,只......
BUSHOUND抓包stall pid的USTS c0000004错误
对USB设备进行数据分析,使用最多的也就是BUSHOUND了,不过经常遇到一个问题就是 USTS c0000004 stall pid 错误。USTS c0000004 stall pid在本站中搜......
BOT MASS_STORAGE_RESET
Bulk-Only Mass Storage Reset类特定请求是USB大容量存储设备独有的。 该特定类请求的功能用于复位大容量存储设备和与之关联的接口。通知设备接下来的批量端点输出数据为命令块包(CBW)。由于该请求是控制请求,所以是通过端点0发送的。在设备完成该请求即复位之前,设备应......
USB状态错误码USBD_STATUS对照表
USBD_STATUS可以通地BUSHOUND抓包的USTS(USB STATUS)来抓包。头文件:C:Program Files (x86)Windows Kits10Include10.0.18362.0sharedusb.hUSBD_STATUS定义了USB请求的状态值。......
TYPE-C PD供电协议常用功能序列(接口数据包开始SOP,线缆数据包开始SOP''、硬件复位、线缆复位
使用TYPE-C PD供电协议信号-4b5b编码对照表的序列组合,可以组成一些常用的功能序列。硬件复位hard Reset硬件复位信令是为了被物理层识别而发送的一组有序字节。硬复位信号顺序集定义为:三个RST-1 K代码,后跟一个RST-2 K代码。硬件复位的功能是对接口和线缆进行复位K......
USB高速基础知识
USB 2.0 中引入了对规范的高速添加,以响应 Firewire 的更高速度。由于 High Speed 是事后才添加的,并且必须在不影响性能的情况下保持兼容性,所以我们将保留对 High Speed 的描述,直到我们涵盖了原始规范的基础知识数据传输高速实现的数据速率为 480 Mb/s。这需要......
USB设备复位、挂起和恢复命令
USB主机除了在正常的操作期间发送到设备的控制命令外,主机还可以发出三种独特的信号条件:复位、挂起或恢复挂起的设备。设备复位RESET在枚举过程中,主机向设备发出复位信号。注意此USB 复位与硬件或上电复位不相同,是两个概念。USB 复位的目的是设置设备的软件状态,以便进行枚举。当 D- 和 D......
BusHound抓包的USTS数据内容来源介绍
在Windows操作系统下开发USB设备驱动程序,或者分析USB设备固件通讯的时候,难免遇到一个错误信息,其中一项重要的数据条目就是USTS的显示。如:Device Phase Data Description Cmd.Phase.......
HID键盘鼠标复位报告描述符
0x05, 0x01, // USAGE_PAGE (Generic Desktop) 0x09, 0x02, // USAGE (Mouse) 0xa1, 0x01, ......
USB设备通过BUSHOUND抓包IRP被取消USTS状态为0xC0010000
通过BUSHOUND抓包内容为: 16.0 CTL 80 06 00 02 00 00 20 00 GET DESCRIPTOR 336us 16.0 32 IN 09 02 20 00 ......
作者信息
USB中文网
B站搜索 站长漫谈 看视频。
pnpon内核开网,USB中文网,
busrom硬核技术网站长
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

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

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