aasa2
驱动中牛
驱动中牛
  • 注册日期2004-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分525分
  • 威望339点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
阅读:1459回复:7

关于识别U盘,A盘的问题 80分

楼主#
更多 发布于:2004-10-27 14:27
前提,在文件驱动下
deviceObject中的DeviceType可以判别光驱和磁盘,
  但是他把A盘、U盘都视同为磁盘。就是说,使用DeviceType根本识别不了当前访问的是A盘、U盘还是磁盘!
如下
deviceObject-〉DeviceType = FILE_DEVICE_CD_ROM
deviceObject-〉DeviceType = FILE_DEVICE_CD_ROM_FILE_SYSTEM
deviceObject-〉DeviceType = FILE_DEVICE_DISK
deviceObject-〉DeviceType = FILE_DEVICE_DISK_FILE_SYSTEM。

但是我发现deviceObject的characteristics中有这些标志
FILE_FLOPPY_DISKETTE
FILE_REMOVEABLE_MEDIA
请问我可以使用这里的标志来判别当前访问的是A盘、U盘吗
技术交流:aasa2@21cn.com QQ群:10863699
fslife
驱动大牛
驱动大牛
  • 注册日期2004-06-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望49点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-10-28 15:55
期待中。。。。。。
在交流中学习。。。
nustzhua
驱动中牛
驱动中牛
  • 注册日期2002-06-19
  • 最后登录2015-09-27
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-10-28 16:59
自己试一下好了。
不限容量的免费邮箱 www.k65.net
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-10-29 10:04
前提,在文件驱动下
deviceObject中的DeviceType可以判别光驱和磁盘,
  但是他把A盘、U盘都视同为磁盘。就是说,使用DeviceType根本识别不了当前访问的是A盘、U盘还是磁盘!
如下
deviceObject-〉DeviceType = FILE_DEVICE_CD_ROM
deviceObject-〉DeviceType = FILE_DEVICE_CD_ROM_FILE_SYSTEM
deviceObject-〉DeviceType = FILE_DEVICE_DISK
deviceObject-〉DeviceType = FILE_DEVICE_DISK_FILE_SYSTEM。

但是我发现deviceObject的characteristics中有这些标志
FILE_FLOPPY_DISKETTE
FILE_REMOVEABLE_MEDIA
请问我可以使用这里的标志来判别当前访问的是A盘、U盘吗

FILE_REMOVEABLE_MEDIA应该可以区别U盘和软盘,但不能区别光盘,因为在XP系统中CDROM具有FILE_REMOVEABLE_MEDIA标志,但他不是FILE_DEVICE_DISK的,另外这个区别不是很准确,因为在通常情况下是这样的,举例说,对CDROM的Filter,Device Type你可以是UNKNOW的(当然也可以是其他,甚至是MOUSE等)所以这个只能作为一般判断标准,如果写代码这样去判断有可能有问题(我是说其他人故意将自己的FILE DISK的DeviceType作成其它的也不是不可能)
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-10-30 15:53
FILE_REMOVEABLE_MEDIA应该可以区别U盘和软盘,但不能区别光盘,因为在XP系统中CDROM具有FILE_REMOVEABLE_MEDIA标志,但他不是FILE_DEVICE_DISK的,另外这个区别不是很准确,因为在通常情况下是这样的,举例说,对CDROM的Filter,Device Type你可以是UNKNOW的(当然也可以是其他,甚至是MOUSE等)所以这个只能作为一般判断标准,如果写代码这样去判断有可能有问题(我是说其他人故意将自己的FILE DISK的DeviceType作成其它的也不是不可能)


AllenZh 说的有道理,不过我们只是考虑通常情况下,如果有人故意那么做,不让你找到,我们也没办法

学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
Zhouy
驱动牛犊
驱动牛犊
  • 注册日期2004-05-28
  • 最后登录2005-03-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-10-31 14:51
currentIrpStack-DedviceObject->characteristics = FILE_FLOPPY_DISKETTE
yearnyan
驱动牛犊
驱动牛犊
  • 注册日期2004-06-17
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-11-02 19:39
currentIrpStack-DedviceObject->characteristics = FILE_FLOPPY_DISKETTE

这样可以吗.

我想判断DedviceObject->characteristics 是否
   FILE_REMOVEABLE_MEDIA
该怎么判断.
我用
if(.....->Characteristics & FILE_REMOVABLE_MEDIA ){
    DbgPrint(("this device is removiable"));
}
没反应呀.
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
7楼#
发布于:2004-11-02 20:15
测试看看吧,实践是检验真理的唯一标准
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
游客

返回顶部