打印

请教一个关于U盘逻辑单元设置的问题?

[复制链接]
1898|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 l_lin2003 于 2013-3-25 17:33 编辑

我在获取最大逻辑单元时返回了01, 按理说应该有两个盘符啊,怎么只有一个呢,奇怪。枚举都成功了
有大侠帮忙指点指点,谢了!
如图所示:


相关帖子

沙发
l_lin2003|  楼主 | 2013-3-27 14:50 | 只看该作者
这个问题现在解决了,大家也没有回答的,不知道是没有遇到过这样的问题,还是惜字如金。
现在把我解决的方法说一下,给以后还有遇到我真类问题的朋友有个借鉴。不过因为这是我误打误撞的解决的,不知道解决的是否有理论根据,此方法算个参考吧,以免误导各位,但我这个方法的确解决了上述问题。
先说一下前序:前段时间在开发枚举代码过程中,两个USB同时查到电脑上,PC就蓝屏,后来发现在U盘在枚举的过程中,产品序列号描述符在代码里固定成了一个值,当我把这个产品序列号描述符去掉后(在设备描述符里把产品序列号描述符索引设置为0就表示没有产品序列号),此时PC系统就会给U盘的产品描述符自动分配一个值,这样多个U盘同时插入PC就不再蓝屏了,也就是说两个U盘在厂商描述符、产品描述符一样的同时,如果再设置产品序列号描述符一样,就会导致PC蓝屏。
然后,就是现在楼上提问的问题了,我现在需要做一个CDROM+U盘,设置两个逻辑单元(最大逻辑单元返回值设置为1)时,只出现一个盘符,死活不出现两个盘符,在坛子里提问也没有人回答,死憋着自己调试摸索,又误打误撞的,当我恢复了原来设置的产品序列号描述符后,竟然奇迹的出现了CDROM+U盘图标,当然中间有好多调试过程,此处就省略了。那有人问,设置了产品序列号描述符后,再出现蓝屏怎么办?好办,产品序列号描述符返回值用随机数代替,我取了16字节随机数,来表示产品序列号描述符,这样产品序列号描述符再出现一样的概率是16的16次方分之一,概率就很小了。
如图所示:

截图00.jpg (32.46 KB )

截图00.jpg

使用特权

评论回复
板凳
lzqxs89| | 2013-3-28 11:06 | 只看该作者
你自己做练习,还是公司开发需要啊?

使用特权

评论回复
地板
l_lin2003|  楼主 | 2013-3-28 16:46 | 只看该作者
lzqxs89 发表于 2013-3-28 11:06
你自己做练习,还是公司开发需要啊?

做这方面的相关工作,这几天没事,随便调调,也为自己扩充点知识吧,将来工作上也许会用得着
不知道lzqxs89为何有此一问?

使用特权

评论回复
5
lzqxs89| | 2013-3-28 18:36 | 只看该作者
我最近也在做USB mass storage 。但是不知道学会了有什么用!实现协议层,数据层就没做了!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

103

帖子

1

粉丝