阅读:3866回复:42
将枚举进行到底―GET CONFIGURATION问题!
在大家的帮助下,我的枚举已经进行到了GET CONFIGURATION了,主机发送获得接口请求后,我返回了一个字节数据(值为1)
然后主机就又发送了一个00 09 00 00 00 00 00 00(设置配置)请求,是不是我发送的数据不对呢? |
|
沙发#
发布于:2003-03-02 12:09
这是让你设置端点使能,如果wVaslue是1则设置端点使能,连接完成,否则停止端点。
|
|
板凳#
发布于:2003-03-02 14:28
之前我已经收到了一个00 09 01 00 00 00 00 00了,我返回空的数据报表是配置完成后,主机发送了get configuration给我,我返回了当前配置值1后,主机就发给我00 09 00 00 00 00 00 00,所以很奇怪
在收到设置配置时不是什么事情都不用做吗,只要置一个标志和返回一个空包吗? |
|
地板#
发布于: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] |
|
地下室#
发布于:2003-03-03 09:03
之前我已经收到了一个00 09 01 00 00 00 00 00了,我返回空的数据报表是配置完成后,主机发送了get configuration给我,我返回了当前配置值1后,主机就发给我00 09 00 00 00 00 00 00,所以很奇怪 置哪个标志位啊? |
|
5楼#
发布于:2003-03-03 09:17
在收到设置配置时不是什么事情都不用做吗,只要置一个标志和返回一个空包吗?
这看你是否需要了,否则就只要置一个标志和返回一个空包就行。 在GET CONFIG中,我返回给主机的是1,然后就被stall了 你确定是返回1 后就被STALL 的有可能主机又有REQUEST 而你未响应才被STALL 的,我就遇到过这种情况。你再查一下。 |
|
6楼#
发布于:2003-03-03 10:22
置标志位就是给一个表示设备已配置的全局变量赋值,
楼上的老兄,在get config之后,我是又收到了请求,但是是00 09 00 00 00 00 00 00,这个请求是让我把设备置为未配置状态的呀 |
|
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是什么啊? |
|
8楼#
发布于:2003-03-03 18:49
我觉得很可能你的ep0的收发程序有漏洞,我发现用BusHound捕捉的数据经常会丢失。你好好查一下!
|
|
9楼#
发布于:2003-03-04 10:04
puppypyb:
你的问题和可以让dacongtou来回答,d12的命令我不懂,它是做这个的,我只能回答你协议以及和我用的类似的问题,具体到命令我就不懂了。 |
|
10楼#
发布于:2003-03-04 10:55
To jinghuiren:
我查看了我的程序,好像你应该先将现在的config返回(好像初始为0),系统就会再发set config 1了!不过这个数值没有什么用处啊,因为我们都只有一组config啊! |
|
11楼#
发布于:2003-03-04 11:49
可是我已经收到了SET CONFIG 1了呀,我设置了之后才收到的GET CONFIG,你的意思是我先发送0过去,然后再进行一次吗?那我试试再。
|
|
12楼#
发布于:2003-03-04 12:18
应该是不理它那个Set Config 1吧,主机该会接着发BulkOut包的。
|
|
13楼#
发布于:2003-03-04 13:41
现在问题是:我在set config里面只设置了一个标志位,然后主机就发送get config命令,我收到后返回了当前的配置值1,然后主机就又发了个00 09 00 00 00 00 00 00给我,之后就什么也没有了,而设备管理器里面显示的设备上那个黄色的叹号还有,这是不是说明我后续枚举没有完成呢。
|
|
14楼#
发布于:2003-03-05 00:37
你可以用bushound跟踪一下,在set config之后host有没有通过bulk out端点发送bulk only包给你!
我现在进行到跟你差不多的阶段,大家多交流吧! 对了但是我遇到一个问题,windows监测到有新设备,并且开始安装就会停在那里,除非我拔掉设备,否则windows跟死机一样,你有遇到过吗? |
|
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又编译了一遍就好了,你可以换个驱动试试,或者重新编译一下你的驱动。 |
|
16楼#
发布于:2003-03-05 15:21
另外你所说的bulk only包是什么意思,是什么格式的?
|
|
17楼#
发布于:2003-03-05 15:36
我想NewTech说的bulk only包就是bulk only协议包,即CBW包吧
你的这个问题的确有点怪异,我的是只简单按协议处理了 另外,请教一下,你有篇贴子说主机发出命令后多长时间设备必须响应?找不到那篇了 |
|
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] |
|
19楼#
发布于:2003-03-05 16:41
哦,不过设备端返回数据的超时限制是500ms第一个包,然后每包也是500ms,状态包是50ms。5s是指主机发数据,设备端等待的最大时间。
你是用bushound抓的数据?2.0的?我怎么抓不到2.0的呢? 你再把你返回的配置包抓全,贴出来 |
|
上一页
下一页