jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
阅读:3866回复:42

将枚举进行到底―GET CONFIGURATION问题!

楼主#
更多 发布于:2003-03-01 18:54
在大家的帮助下,我的枚举已经进行到了GET CONFIGURATION了,主机发送获得接口请求后,我返回了一个字节数据(值为1)
然后主机就又发送了一个00 09 00 00 00 00 00 00(设置配置)请求,是不是我发送的数据不对呢?

最新喜欢:

templatempla sandmansandma...
majingsong
驱动牛犊
驱动牛犊
  • 注册日期2002-04-02
  • 最后登录2007-05-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-03-02 12:09
这是让你设置端点使能,如果wVaslue是1则设置端点使能,连接完成,否则停止端点。
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-03-02 14:28
之前我已经收到了一个00 09 01 00 00 00 00 00了,我返回空的数据报表是配置完成后,主机发送了get configuration给我,我返回了当前配置值1后,主机就发给我00 09 00 00 00 00 00 00,所以很奇怪

在收到设置配置时不是什么事情都不用做吗,只要置一个标志和返回一个空包吗?
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-03-02 17:48
下面是我捕捉到的数据:
CTL    80 06 00 01 - 00 00 12 00  GET  DESCRIPTOR      
DI     12 01 02 00 - 00 00 00 40   ...@        
CTL    80 06 00 02 - 00 00 09 01  GET DESCRIPTOR          
DI     09 02 20 00 - 01 01 00 80  ........  
CTL    00 09 01 00 - 00 00 00 00  SET CONFIG              
CTL    80 08 00 00 - 00 00 01 00  GET CONFIG
USTS   04 00 00                   stall pid  
CTL    00 09 00 00 - 00 00 00 00  SET CONFIG

在GET CONFIG中,我返回给主机的是1,然后就被stall了,不知道那位仁兄遇到过这种情况,还望能给小弟指点一二,感激涕零!              


[编辑 -  3/2/03 by  jinghuiren]
dacongtou
驱动中牛
驱动中牛
  • 注册日期2002-11-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-03-03 09:03
之前我已经收到了一个00 09 01 00 00 00 00 00了,我返回空的数据报表是配置完成后,主机发送了get configuration给我,我返回了当前配置值1后,主机就发给我00 09 00 00 00 00 00 00,所以很奇怪

在收到设置配置时不是什么事情都不用做吗,只要置一个标志和返回一个空包吗?



置哪个标志位啊?
flyfree
驱动牛犊
驱动牛犊
  • 注册日期2002-12-26
  • 最后登录2007-09-16
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-03-03 09:17
在收到设置配置时不是什么事情都不用做吗,只要置一个标志和返回一个空包吗?

这看你是否需要了,否则就只要置一个标志和返回一个空包就行。


在GET CONFIG中,我返回给主机的是1,然后就被stall了
你确定是返回1 后就被STALL 的有可能主机又有REQUEST 而你未响应才被STALL 的,我就遇到过这种情况。你再查一下。


jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-03-03 10:22
置标志位就是给一个表示设备已配置的全局变量赋值,
楼上的老兄,在get config之后,我是又收到了请求,但是是00 09 00 00 00 00 00 00,这个请求是让我把设备置为未配置状态的呀
puppypyb
驱动牛犊
驱动牛犊
  • 注册日期2003-01-14
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分52分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-03-03 17:32
jing大虾! 能不能问你个问题

80
C0
01 21 01 34 --80 06 00 01 00 00 40 00 --12 01 00 01 DC 00 00 10
40
01 21 01 34 --00 05 02 00 00 00 00 00 --FA
02 00 41
01 21 01 34 --80 06 00 01 00 00 12 00 --12 01 00 01 DC 00 00 10 71 04 66 06 00 01 00 00
02 00 41 00 08 00 01 FA
03 00 01 ――――》这儿
01 A1 01 34 --80 06 00 02 00 00 09 00 --09 02 2E 00 01 01 00 60 01 FA
03 01 41
01 41
01 21 01 34 --80 06 00 02 00 00 FF 00 -- 09 02 2E 00 01 01 00 60 01 09 04 00 00 04 DC A0
02 00 41 00 08 -------------B0 00 07 05 81 03 10 00 0A 07 05 01 03 10 00 0A
02 00 01 00 18 -------------07 05 82 02 40 00 0A 07 05 02 02 40 00 0A FA
03 00 81
01 41

01是control in  , 上面的03是什么啊?
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-03-03 18:49
我觉得很可能你的ep0的收发程序有漏洞,我发现用BusHound捕捉的数据经常会丢失。你好好查一下!
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-03-04 10:04
puppypyb:
你的问题和可以让dacongtou来回答,d12的命令我不懂,它是做这个的,我只能回答你协议以及和我用的类似的问题,具体到命令我就不懂了。

NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-03-04 10:55
To jinghuiren:
我查看了我的程序,好像你应该先将现在的config返回(好像初始为0),系统就会再发set config 1了!不过这个数值没有什么用处啊,因为我们都只有一组config啊!
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-03-04 11:49
可是我已经收到了SET CONFIG 1了呀,我设置了之后才收到的GET CONFIG,你的意思是我先发送0过去,然后再进行一次吗?那我试试再。
iamchine
驱动小牛
驱动小牛
  • 注册日期2002-11-18
  • 最后登录2005-11-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-03-04 12:18
应该是不理它那个Set Config 1吧,主机该会接着发BulkOut包的。
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-03-04 13:41
现在问题是:我在set config里面只设置了一个标志位,然后主机就发送get config命令,我收到后返回了当前的配置值1,然后主机就又发了个00 09 00 00 00 00 00 00给我,之后就什么也没有了,而设备管理器里面显示的设备上那个黄色的叹号还有,这是不是说明我后续枚举没有完成呢。
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-03-05 00:37
你可以用bushound跟踪一下,在set config之后host有没有通过bulk out端点发送bulk only包给你!

我现在进行到跟你差不多的阶段,大家多交流吧!

对了但是我遇到一个问题,windows监测到有新设备,并且开始安装就会停在那里,除非我拔掉设备,否则windows跟死机一样,你有遇到过吗?
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-03-05 15:15
我跟踪了,现在又发现在set config之后还有get config和get interface,然后会再来一个wvalue为0的set config(就是00 09 00 00 00 00 00 00),然后就没有了,但是这个时候设备管理器里硬件上面的那个黄色的叹号还是存在。

你的问题是你的驱动有问题,我也曾经遇到过,我使用2k的驱动在98下用,一装就死机,后来我用98ddk又编译了一遍就好了,你可以换个驱动试试,或者重新编译一下你的驱动。
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-03-05 15:21
另外你所说的bulk only包是什么意思,是什么格式的?
iamchine
驱动小牛
驱动小牛
  • 注册日期2002-11-18
  • 最后登录2005-11-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2003-03-05 15:36
我想NewTech说的bulk only包就是bulk only协议包,即CBW包吧
你的这个问题的确有点怪异,我的是只简单按协议处理了
另外,请教一下,你有篇贴子说主机发出命令后多长时间设备必须响应?找不到那篇了
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2003-03-05 16:11
下面是最新收到的数据:
  15.0  CTL    80 06 00 01 - 00 00 12 00       GET DESCRIPTOR      
  15.0  DI     12 01 02 00 - 00 00 00 40       .......@              
  15.0  CTL    80 06 00 02 - 00 00 09 01       GET DESCRIPTOR        
  15.0  DI     09 02 20 00 - 01 01 01 80       .. .....              
  15.0  CTL    00 09 01 00 - 00 00 00 00       SET CONFIG            
  15.0  CTL    80 08 00 00 - 00 00 01 00       GET CONFIG            
  15.0  USTS   04 00 00 c0                     stall pid            
  15.0  CTL    80 0a 00 00 - 00 00 01 00       GET INTERFACE        
  15.0  USTS   04 00 00 c0                     stall pid            
  15.0  CTL    00 09 00 00 - 00 00 00 00       SET CONFIG            
  15.0  CTL    80 06 00 02 - 00 00 09 01       GET DESCRIPTOR        
  15.0  DI     09 02 20 00 - 01 01 01 80       . .....                

下面是又一次了,上面的是一次枚举收到的数据
  15.0  CTL    80 06 00 01 - 00 00 12 00       GET DESCRIPTOR        
  15.0  DI     12 01 02 00 - 00 00 00 40       ......@              

不明白到底是那里出了问题, :(

你的问题是:对于有数据的请求,设备方必须在500ms内返回低一个数据包,然后可以在一个500ms内返回剩余的全部返回,然后用50ms结束状态阶段;对于没有数据阶段的请求,如set address,设备必须在50ms内完成状态阶段,所以在调试是如果你在某一个请求处理上设了断点,那么有可能下一个setup包就不会再有了,因为超时的原因。

[编辑 -  3/5/03 by  jinghuiren]

[编辑 -  3/6/03 by  jinghuiren]
iamchine
驱动小牛
驱动小牛
  • 注册日期2002-11-18
  • 最后登录2005-11-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2003-03-05 16:41
哦,不过设备端返回数据的超时限制是500ms第一个包,然后每包也是500ms,状态包是50ms。5s是指主机发数据,设备端等待的最大时间。
你是用bushound抓的数据?2.0的?我怎么抓不到2.0的呢?
你再把你返回的配置包抓全,贴出来
上一页
游客

返回顶部