首页
社区
课程
招聘
[旧帖] [求助]弱弱地打听个事:怎么从盘符得到设备名 0.00雪花
发表于: 2008-4-2 09:46 5133

[旧帖] [求助]弱弱地打听个事:怎么从盘符得到设备名 0.00雪花

2008-4-2 09:46
5133
怎么从盘符得到设备名
比如从 C: 得到 harddiskvolume1?
谢谢!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我也不会 但可以帮你顶起来
2008-4-2 10:05
0
雪    币: 205
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
路过的高手,帮帮忙!
2008-4-2 11:34
0
雪    币: 141
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
“C:”到“\Device\HarddiskVolume1”
status = FltGetDiskDeviceObject( FltObjects->Volume, &devObj );
    if (NT_SUCCESS(status)) {
        status = RtlVolumeDeviceToDosName( devObj, &Name );
        if( NT_SUCCESS( status ))
        {
            //KdPrint(("得到了卷名:%ws",(&Name)->Buffer));
            if (RtlCompareUnicodeString( &Name, &CDISK, TRUE ) == 0)
            {
                KdPrint(("附加到了卷:%wZ\n",&Name));
                return STATUS_SUCCESS;
            }
        }
        //else KdPrint(("得到卷名失败!"));
    }

“\Device\HarddiskVolume1“到”C:“
TCHAR szBuf[1024];
QueryDosDevice(_T("C:"),   szBuf,   sizeof(szBuf)/sizeof(TCHAR));
其中szBuf就是
2008-4-2 12:35
0
雪    币: 205
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
首先,谢谢楼上的大哥!
怪我没说清楚,我想得到的是用户态下的普通程序。
这些函数好像都是内核态的,用户态下能用吗?
2008-4-2 15:31
0
雪    币: 141
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
对!你说的没错。它无发运行。

那个我的个人意见是用驱动来完成。

因为用户态(不是很精确,暂时用你的说法,好像应该叫CPU非特权状态)下涉及硬件的内容一般都用驱动完成。

设备名在用户态下用途很少 我也只是粗通皮毛 大家都去msdn好好查查看。

查询结果:

好像都在一些驱动开发区和底层区有提到...
2008-4-4 21:41
0
雪    币: 205
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
谢谢
到底不是开源的,底层的资料好少
2008-4-12 14:02
0
游客
登录 | 注册 方可回帖
返回
//