找回密码
 加入
搜索
查看: 3054|回复: 4

[AU3基础] 磁盘和卷标怎样能联系起来?

  [复制链接]
发表于 2011-12-17 22:17:19 | 显示全部楼层 |阅读模式
本帖最后由 jd19970829 于 2011-12-17 22:45 编辑

\\.\PhysicalDrive1
这个是磁盘名
\\?\Volume{a61ca470-f95b-11e0-8c69-003067e17e0a}\
这个是卷名

如果在只知道卷名或者只知道磁盘名的情况下,有没有什么办法能够从磁盘名得到卷名或者从卷名得到磁盘名。

最近在写一个虚拟盘出盘的程序,虚拟盘在连接了ISCSI服务端以后本地出了盘,但没有盘符的情况,这时需要给出的盘分一个盘符,问题是怎样从很多硬盘里判断出哪个是我出的ISCSI虚拟盘,并且能够正确的给这个虚拟盘加上盘符?

通过iscsicli工具可以得到一些信息,里面包含有虚拟盘的磁盘名,想从磁盘名入手,找出卷标名,然后用mountvol把卷加上盘符,但是找了很久也没有找到能够把磁盘名和卷标名联系起来的方法

WMI方法的就不提了,不是每个系统都有WMI的!
发表于 2011-12-18 07:59:23 | 显示全部楼层
本帖最后由 netegg 于 2011-12-18 08:06 编辑

[au3]#Include <WinAPIEx.au3>
_WinAPI_GetVolumeNameForVolumeMountPoint[/au3]

磁盘的物理名称需要用createfile获取,懒得写了
发表于 2011-12-18 11:00:50 | 显示全部楼层
好源码,谢谢共享
 楼主| 发表于 2011-12-18 11:39:30 | 显示全部楼层
回复 2# netegg


    你并没有看懂我的问题啊。
_WinAPI_GetVolumeNameForVolumeMountPoint ( $sPath ),如果分区还没有被加上盘符怎么办?
如果我只知道磁盘号,不知道盘符怎么办?

我是说的从磁盘名(没有盘符的情况)\\.\PhysicalDrive1怎样能得到卷标。
发表于 2011-12-18 11:56:22 | 显示全部楼层
本帖最后由 netegg 于 2011-12-18 12:30 编辑

回复 4# jd19970829
不是说了吗,用createfile api做
_WinAPI_CreateFile("\\.\" & $sPhysDisk, 2, 6, 6, 1)
用这个可以获取盘符,中间换来换去弄一下,就能对上了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-20 20:51 , Processed in 0.077989 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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