windows是怎么区分USB硬盘和U盘的?

[复制链接]
 楼主| aolin 发表于 2007-11-22 16:44 | 显示全部楼层 |阅读模式
一直想知道windows是怎么区分USB硬盘和U盘的?<br />插入一个USB硬盘,盘符显示在硬盘一栏;<br />插入一个U盘,盘符显示在移动磁盘一栏.<br />
xwj 发表于 2007-11-22 17:05 | 显示全部楼层

设备标识不同啊

  
 楼主| aolin 发表于 2007-11-23 10:40 | 显示全部楼层

能不能具体一点,什么设备标识?

太笼统了,能否解释清楚一点,通过什么协议识别是硬盘还是U盘?<br />
vongy 发表于 2007-11-23 12:25 | 显示全部楼层

windows是怎么区分USB硬盘和U盘的?

他们都是用MASS&nbsp;STORAGE来传输的.但是在FAT区会有所不同,U盘的标识与移动硬盘不同.
michael_li 发表于 2007-11-23 14:06 | 显示全部楼层

每个设备肯定会有放配置信息的寄存器

os会读取这个寄存器<br />具体寄存器就不知道在什么位置了
 楼主| aolin 发表于 2007-11-23 16:27 | 显示全部楼层

等待高人...

1,&nbsp;两个都是Mass&nbsp;Storage&nbsp;Class,&nbsp;但看了又看Mass&nbsp;Storage的协议,也没有发现有硬盘和U盘之分呀!<br />2,&nbsp;FAT区只有FAT12/16/32之分,也没有硬盘和U盘之分.<br /><br />除非是在SCSI中有定义,还没有找到SCSI的SPEC,&nbsp;哪里有SCSI的SPEC下载?<br />
devusb 发表于 2007-11-25 12:23 | 显示全部楼层

SCSI的Inquiry命令应答告诉PC机的

SCSI命令&nbsp;0x12&nbsp;应答时有一个bit表示本地磁盘还是可移动磁盘.
 楼主| aolin 发表于 2007-11-26 09:33 | 显示全部楼层

还是版主见识广呀!

我猜也是在SCSI中定义.<br />顺便问一句,哪里可以找到SCSI的资料?<br />
dragon_hn 发表于 2007-12-4 19:07 | 显示全部楼层

在SCSI协议回答的时候有一个BIT

在SCSI协议回答的时候有一个BIT.下面是一段代码,HD_ICON部分应该就是<br /><br />;************************************************************************<br />SS_Inquiry:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;set&nbsp;byte0&nbsp;=&nbsp;DIRECT_ACCESS_DEVICE&nbsp;=&nbsp;0<br />Do_Inquiry:<br />&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;r8,DATA0<br />#ifdef&nbsp;HD_ICON<br />&nbsp;&nbsp;&nbsp;xor&nbsp;&nbsp;&nbsp;[r8++],[r8]<br />#else<br />&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;[r8++],0x8000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;set&nbsp;Removable&nbsp;Media&nbsp;bit<br />#endif<br />&nbsp;&nbsp;&nbsp;xor&nbsp;&nbsp;&nbsp;[r8++],[r8]<br />&nbsp;&nbsp;&nbsp;xor&nbsp;&nbsp;&nbsp;[r8++],[r8]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;xor&nbsp;&nbsp;&nbsp;[r8++],[r8]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;point&nbsp;to&nbsp;o_VendorID&nbsp;at&nbsp;offset&nbsp;8<br />&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;r9,str2<br />&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;r1,((STR1_LEN-2)/2)<br />@@:<br />&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;b[r8++],[r9++]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;copy&nbsp;Mfg&nbsp;and&nbsp;Prod&nbsp;String<br />&nbsp;&nbsp;&nbsp;dec&nbsp;&nbsp;&nbsp;r1<br />&nbsp;&nbsp;&nbsp;jnz&nbsp;&nbsp;&nbsp;@b<br />&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;r1,40<br />@@:<br />&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;b[r8++],0x20<br />&nbsp;&nbsp;&nbsp;dec&nbsp;&nbsp;&nbsp;r1<br />&nbsp;&nbsp;&nbsp;jnz&nbsp;&nbsp;&nbsp;@b<br />&nbsp;&nbsp;&nbsp;ret<br />
kunliu 发表于 2007-12-20 19:52 | 显示全部楼层

driver and inf files

  
sz_kd 发表于 2007-12-20 19:59 | 显示全部楼层

学习中

  
mikesullen 发表于 2007-12-24 03:48 | 显示全部楼层

FAT中

FAT的BPB中有个字段叫BPB_Media,一般翻译过来就叫媒体描述符,一个字节,0xF8就代表“fixed”&nbsp;(non-removable),非移动<br />通常用0xF0来代表removable,可移动的。。。。<br />它的合法值还可能是0xF9,&nbsp;0xFA,&nbsp;0xFB,&nbsp;0xFC,&nbsp;0xFD,&nbsp;0xFE,&nbsp;0xFF。
michael_li 发表于 2007-12-24 16:49 | 显示全部楼层

两个答案了。。。

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

396

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

101

主题

396

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部