HID开发笔记
+ -

HID设备SET_IDLE时遇到c0000004

2021-09-14 1177 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
是的

HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

关于UVC摄像头指示灯的调试过程总结
最近遇到了一个很是奇怪的UVC摄像头指示灯问题,现象如下:上层应用是一个会议系统软件,当需要进行会议时,点击会议按钮添加会议。这时应用软件打开摄像头,并开始与服务器进行网络连接。当然由于摄像头的打开,摄像头指示灯点亮。上层应用软件与服务器连接后,进行会议界面。这时突然摄像头指示灯熄灭,但会议正常,摄......
HID 设置空闲SetIdle
SetIdle用于设置HID设备空闲速率。默认情况下,空闲速率为0。SetIdle是一个非必要请求。bmRequestType(1):0x21bRequest(1): SET_IDLE,值为0A.wValue(2):高字节用于指定空闲速率,以4ms为单位,可选的值为4ms~1020ms,低字节......
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在本站中搜......
HID设备SET_IDLE时遇到c0000004
下午,USB中文网技术交流群里的一个同学,说他的HID设备时好时不好的,有时会花很长的时间才能枚举成功。没有抓包,没的截图…我是一顿乱扯,从硬件电路到各种抓包方法….晚上11点,这位同学发来了BUSHOUND抓的包,打开一看:Device Length Phase Data ......
USB状态错误码USBD_STATUS对照表
USBDI.H定义了一组USB_STATUS_XXX的值. 这些值是从URB的状态字段是对IRP_MJ_INTERNAL_DEVICE_CONTROL调用的USB传输状态返回标识。USBD将URB状态码映射到有效的NTSTATUS码中(但具体详情还得看USBD_STAUTS_XXX的值),在完成IR......
BusHound抓包的USTS数据内容来源介绍
在Windows操作系统下开发USB设备驱动程序,或者分析USB设备固件通讯的时候,难免遇到一个错误信息,其中一项重要的数据条目就是USTS的显示。如:Device Phase Data Description Cmd.Phase.......
驱动级细述USB状态码USBD_STATUS_STALL_PID
USBD_STATUS_STALL_PID错误经常出现在USB抓包过程中。特别是以BUSHOUND为代表的Windows抓包工具。如: 31.1 RESET 31.1 ......
USB-UAC麦克风音频数据传输USBD_STATUS_ISOCH_REQUEST_FAILED/USTSU状态C0000B00分析
今天,同事突然说麦克风出声问题了,插拔硬件可以恢复。让协助定位分析一下问题。首先本人通过音频控制面板看到,当麦克风打开时,使用麦克风采集有声音的环境的声音,指定设备的音频控制面板的能量条无任何的波动。本图似为效果演示,实际并非本设备所以本人初步定位,音频设备无法读取到数据引起的。无能量条......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

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

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