HID开发笔记
+ -

HID设备SET_IDLE时遇到c0000004

2021-09-14 18 0

下午,USB中文网技术交流群里的一个同学,说他的HID设备时好时不好的,有时会花很长的时间才能枚举成功。
没有抓包,没的截图…

我是一顿乱扯,从硬件电路到各种抓包方法….

晚上11点,这位同学发来了BUSHOUND抓的包,打开一看:

Device   Length    Phase  Data                        Description       Delta
------   --------  -----  --------------------------------------------  -----
  85.1          1  IN     04                          .                 2.1sc
  87.0             CTL    80 06 00 01  00 00 12 00    GET DESCRIPTOR     98ms
  87.0         18  IN     12 01 00 02  00 00 00 40    .......@          207us
  87.0             CTL    80 06 00 02  00 00 09 00    GET DESCRIPTOR     29us
  87.0          9  IN     09 02 29 00  01 01 00 e0    ..).....          170us
  87.0             CTL    80 06 00 02  00 00 29 00    GET DESCRIPTOR     21us
  87.0         41  IN     09 02 29 00  01 01 00 e0    ..).....          224us
  87.0             CTL    00 09 01 00  00 00 00 00    SET CONFIG         30us
  87.0             CTL    21 0a 00 00  00 00 00 00    SET IDLE          710us
  87.0             USTS   c0000004                    stall pid         204us

这么明显的错误…我只好又再解释一番,首先得让这位同学看一下往期的文章:

再普及一下SET_IDLE的知识:

后面让他查看对应的代码,看设备的控制请求响应SetIdle的处理就行了。
234310957800


以下是记录:

为了保护隐私,隐去作者 23:17:04
老哥,你看

为了保护隐私,隐去作者 23:17:07
这是我抓的包

为了保护隐私,隐去作者 23:20:28

USB中文网站长23:21:08
HID枚举完会有个SetIdle的,你这个SetIdle固件没有响应,

USB中文网站长23:21:11
所以出问题了

USB中文网站长23:21:38
http://www.usbzh.com/article/detail-560.html

USB中文网站长23:21:45
这个问题我之前遇到过
你看一下我发的这个文章

USB中文网站长23:22:29
c0000004

为了保护隐私,隐去作者 23:24:21

为了保护隐私,隐去作者 23:24:24
谢谢老哥

USB中文网站长23:24:38
你看抓包,一下子就找到问题了

为了保护隐私,隐去作者 23:24:40
老哥,你有完整的一套流程的例子么

为了保护隐私,隐去作者 23:24:48
我对比下

USB中文网站长23:24:50
我的都是虚拟的

USB中文网站长23:25:01
你找个HID键 盘鼠标都 有这个的

USB中文网站长23:25:28
SET_idle的含义你知道吧

为了保护隐私,隐去作者 23:25:30
对对

USB中文网站长23:25:38
http://www.usbzh.com/article/detail-116.html

为了保护隐私,隐去作者 23:25:39
我可以用鼠标键盘直接看

USB中文网站长23:25:44
是的

0 篇笔记 写笔记

HID 设置空闲SetIdle
SetIdle用于设置HID设备空闲速率。默认情况下,空闲速率为0。SetIdle是一个非必要请求。bmRequestType(1):0x21bRequest(1): SET_IDLE,值为0A.wValue(2):高字节用于指定空闲速率,以4ms为单位,可选的值为4ms~1020ms,低字节......
BUSHOUND抓包stall pid的USTS c0000004错误
对USB设备进行数据分析,使用最多的也就是BUSHOUND了,不过经常遇到一个问题就是 USTS c0000004 stall pid 错误。USTS c0000004 stall pid在本站中搜......
HID设备SET_IDLE时遇到c0000004
下午,USB中文网技术交流群里的一个同学,说他的HID设备时好时不好的,有时会花很长的时间才能枚举成功。没有抓包,没的截图…我是一顿乱扯,从硬件电路到各种抓包方法….晚上11点,这位同学发来了BUSHOUND抓的包,打开一看:Device Length Phase Data ......
作者信息
USB中文网
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

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

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