aasa2
驱动中牛
驱动中牛
  • 注册日期2004-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分525分
  • 威望339点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
20楼#
发布于:2004-10-29 10:43
没有呀!
我在文件驱动中这样判别的:
if(DeviceObject->DeviceType == FILE_DEVICE_DISK)//可以识别磁盘,但是他把U盘A盘都作为磁盘了。
if(DeviceObject->Characteristics == FILE_FLOPPY_DISKETTE)//我想这句可以识别A盘了,但是事实上不行。

谁可以指点一下!
技术交流:aasa2@21cn.com QQ群:10863699
waqis
驱动牛犊
驱动牛犊
  • 注册日期2003-06-03
  • 最后登录2017-08-21
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
  • 社区居民
21楼#
发布于:2004-10-29 13:35
其实你在应用层去判断,然后再通知驱动,不可以吗?
punk
驱动小牛
驱动小牛
  • 注册日期2001-04-07
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分621分
  • 威望164点
  • 贡献值0点
  • 好评度60点
  • 原创分0分
  • 专家分0分
22楼#
发布于:2004-11-01 10:56
其实你在应用层去判断,然后再通知驱动,不可以吗?

class FloppyDisk的filter
不停学习
fslife
驱动大牛
驱动大牛
  • 注册日期2004-06-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望49点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
23楼#
发布于:2004-11-01 14:54
class FloppyDisk的filter

如何得到class FloppyDisk设备的Device Object Name,也就是IoAttachDevice中要用到的
在交流中学习。。。
punk
驱动小牛
驱动小牛
  • 注册日期2001-04-07
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分621分
  • 威望164点
  • 贡献值0点
  • 好评度60点
  • 原创分0分
  • 专家分0分
24楼#
发布于:2004-11-02 13:32
[quote] class FloppyDisk的filter

如何得到class FloppyDisk设备的Device Object Name,也就是IoAttachDevice中要用到的 [/quote]
利用file system device 的vdo->vbp得到ftdisk vdo-->vbp得到flopy vdo->drivername得到驱动名称
不停学习
ysz_oo
驱动牛犊
驱动牛犊
  • 注册日期2003-03-08
  • 最后登录2014-11-21
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望40点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
25楼#
发布于:2004-11-24 14:37
U盘和移动硬盘可以通过应用程序判断,先取到盘符,再根据盘符
取得此盘符所在的位置,是USB口的就是移动硬盘了
ysz_oo
驱动牛犊
驱动牛犊
  • 注册日期2003-03-08
  • 最后登录2014-11-21
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望40点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
26楼#
发布于:2004-11-24 14:39
当然要先判断一下是否为 可移动设备,如不是再做上面判断
bj751212
驱动牛犊
驱动牛犊
  • 注册日期2004-10-11
  • 最后登录2005-04-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
27楼#
发布于:2004-11-24 14:48
楼主能否把代码贴出来给大家看看,偶也在做这个东西
dj_ukyo
驱动小牛
驱动小牛
  • 注册日期2003-03-13
  • 最后登录2009-06-02
  • 粉丝0
  • 关注0
  • 积分118分
  • 威望16点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
28楼#
发布于:2004-11-25 11:43
能否给再些提示。
楼主可以联系一下吗?
QQ:19329682
dj_ukyo@sohu.com
ysz_oo
驱动牛犊
驱动牛犊
  • 注册日期2003-03-08
  • 最后登录2014-11-21
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望40点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
29楼#
发布于:2004-11-25 13:04
不好意思,最近一直在外地出差,等回来把代码放上来
dj_ukyo
驱动小牛
驱动小牛
  • 注册日期2003-03-13
  • 最后登录2009-06-02
  • 粉丝0
  • 关注0
  • 积分118分
  • 威望16点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
30楼#
发布于:2004-11-25 13:43
感谢、感谢
dj_ukyo
驱动小牛
驱动小牛
  • 注册日期2003-03-13
  • 最后登录2009-06-02
  • 粉丝0
  • 关注0
  • 积分118分
  • 威望16点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
31楼#
发布于:2004-11-29 14:47
好贴顶一下。
dj_ukyo
驱动小牛
驱动小牛
  • 注册日期2003-03-13
  • 最后登录2009-06-02
  • 粉丝0
  • 关注0
  • 积分118分
  • 威望16点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
32楼#
发布于:2004-12-04 09:59
好贴,大家关注啊!
ysz_oo
驱动牛犊
驱动牛犊
  • 注册日期2003-03-08
  • 最后登录2014-11-21
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望40点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
33楼#
发布于:2004-12-06 10:12
long GetBusType(char disk)
{
CHAR szDriveName[MAX_PATH];
sprintf (szDriveName,"\\\\.\\%c:", disk);
HANDLE hDevice;

hDevice = CreateFile (szDriveName,
GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
0,
NULL);
if (hDevice == INVALID_HANDLE_VALUE)
{
return -1;
}
else
{
DWORD dwBytesReturned, dwRetCode;
int buf_size = 4096;
char buf[4096];

STORAGE_PROPERTY_QUERY query;

memset ((void *)&query, 0, sizeof (query));
query.PropertyId = StorageDeviceProperty;
query.QueryType = PropertyStandardQuery;

dwRetCode = DeviceIoControl (hDevice,
IOCTL_STORAGE_QUERY_PROPERTY,
&query,
sizeof (query),
(STORAGE_DEVICE_DESCRIPTOR *) buf,
buf_size,
&dwBytesReturned,
NULL);
if(!dwRetCode)
{
CloseHandle (hDevice);
return -1;
}
STORAGE_DEVICE_DESCRIPTOR   *info= (STORAGE_DEVICE_DESCRIPTOR *)buf;

CloseHandle (hDevice);
return info->BusType;
}
}
void test()
{
int iType = GetDriveType("C:\\");
switch( iType )
{
case 0:
case 1:
break;
case DRIVE_REMOVABLE:
//这儿是USB
break;
case DRIVE_CDROM:
break;
case DRIVE_FIXED:
long lBusType = GetBusType('C');
if(lBusType != BusTypeUsb)
{
//这儿是硬盘分区
}
else
{
//这儿是移动硬盘分区
}
break;
case DRIVE_REMOTE:
break;
case DRIVE_RAMDISK:
break;
}
}
dj_ukyo
驱动小牛
驱动小牛
  • 注册日期2003-03-13
  • 最后登录2009-06-02
  • 粉丝0
  • 关注0
  • 积分118分
  • 威望16点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
34楼#
发布于:2004-12-06 14:17
有完整的吗?
ysz_oo
驱动牛犊
驱动牛犊
  • 注册日期2003-03-08
  • 最后登录2014-11-21
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望40点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
35楼#
发布于:2004-12-06 16:14
写个程序调用test()函数,应该不会出问题的
yunqiangyoung
驱动牛犊
驱动牛犊
  • 注册日期2010-01-21
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望41点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
36楼#
发布于:2010-01-21 17:27
能不能有谁汇总一下,给个完整的,谢谢~~
cjqznn
驱动牛犊
驱动牛犊
  • 注册日期2010-04-24
  • 最后登录2011-01-10
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望51点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
37楼#
发布于:2010-04-24 07:28
为什么学了C语言后还不懂以上代码呢?ysz_00帮忙解释下那段代码
上一页 下一页
游客

返回顶部