搜索
查看: 1945|回复: 4

求教:怎样区分驱动器都归属于哪个物理硬盘

[复制链接]

2

主题

11

帖子

81

积分

一级会员

Rank: 2

积分
81
发表于 2015-7-3 13:59:57 | 显示全部楼层 |阅读模式
从sys.volume.getAllDevice()中找到含"PhysicalDrive"字样的信息.
从sys.volume.getLogicalDrivers()中取得驱动器盘符,如"C:".
从sys.volume.getDeviceName("C:")中取得"\Device\HarddiskVolume?"字样的信息.
但是没找到驱动器和物理硬盘之间的关联方法.
想做成以下效果,求指教.
硬盘0
    C:
硬盘1
    D:
    E:
硬盘2
    F:
    G:
移动存储
  H:
光驱
  I:
回复

使用道具 举报

9

主题

462

帖子

2551

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2551
发表于 2015-7-3 20:37:25 | 显示全部楼层

sys.volume.getDriveType("C:\") 或者直接 ::Kernel32.GetDriveType("C:\") 看函数说明,输入

sys.volume.getDriveType("C:\")
或者直接 ::Kernel32.GetDriveType("C:\")

看函数说明,输入 _DRIVE_看返回的值列表, _DRIVE_FIXED 就是硬盘,_DRIVE_CDROM就是光驱,_DRIVE_REMOVABLE就是移动磁盘,具体请自己搜索一下。
回复

使用道具 举报

2

主题

11

帖子

81

积分

一级会员

Rank: 2

积分
81
 楼主| 发表于 2015-7-6 09:07:02 | 显示全部楼层

[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=69594&ptid=12964][c

roger 发表于 2015-7-3 20:37
sys.volume.getDriveType("C:\")
或者直接 ::Kernel32.GetDriveType("C:\")

谢谢
我有多硬盘,想要区分C盘是哪块硬盘,getDriveType并不能区分.
回复

使用道具 举报

2

主题

11

帖子

81

积分

一级会员

Rank: 2

积分
81
 楼主| 发表于 2015-7-7 13:52:43 | 显示全部楼层

[quote]硬盘信息: Disk0: D: 总:465.76GB 余:142.59GB 格式:NTFS 卷标:数据 Disk

硬盘信息:  
  Disk0:
    D:  总:465.76GB  余:142.59GB  格式:NTFS  卷标:数据
  Disk1:
    E:  总:698.63GB  余:431.78GB  格式:NTFS  卷标:镜像和程序
    F:  总:698.63GB  余:627.25GB  格式:NTFS  卷标:虚拟机
  Disk2:
    C:  总:119.14GB  余:46.35GB  格式:NTFS  卷标:系统

实现了!
sys.volume.QueryDosDevice("Harddisk"++X++"Partition"++Y),用返回的device跟sys.volume.getDeviceName("C:")匹配对应.
原理不明,蒙出来的!
回复

使用道具 举报

0

主题

8

帖子

102

积分

培训班

积分
102
发表于 2016-2-13 12:01:19 | 显示全部楼层

我也想知道,大侠给解释下呗

我也想知道,大侠给解释下呗
回复

使用道具 举报

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

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-12-15 16:39 , Processed in 0.062500 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表