jd19970829 发表于 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的!

netegg 发表于 2011-12-18 07:59:23

本帖最后由 netegg 于 2011-12-18 08:06 编辑

#Include <WinAPIEx.au3>
_WinAPI_GetVolumeNameForVolumeMountPoint

磁盘的物理名称需要用createfile获取,懒得写了

zxxputian1 发表于 2011-12-18 11:00:50

好源码,谢谢共享

jd19970829 发表于 2011-12-18 11:39:30

回复 2# netegg


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

我是说的从磁盘名(没有盘符的情况)\\.\PhysicalDrive1怎样能得到卷标。

netegg 发表于 2011-12-18 11:56:22

本帖最后由 netegg 于 2011-12-18 12:30 编辑

回复 4# jd19970829
不是说了吗,用createfile api做
_WinAPI_CreateFile("\\.\" & $sPhysDisk, 2, 6, 6, 1)
用这个可以获取盘符,中间换来换去弄一下,就能对上了
页: [1]
查看完整版本: 磁盘和卷标怎样能联系起来?