0

我的问题是:给定一个连接到我的 Windows 机器的脱机磁盘,我怎样才能得到它的卷号?

场景:我需要为共享存储创建一个处理程序(使用 CreateFile 函数),以便在 DeviceIoControl 函数中使用它(需要执行 SCSI 保留)。

“CreateFile”函数获取物理驱动器名称(即\.\PhysicalDisk1)或磁盘的卷号(即\.\E:)。

我的问题是,我不想使用物理驱动器名称,只使用磁盘盘符。这在磁盘在线时工作正常,但当磁盘离线时我也必须支持。

有没有办法在设备/磁盘离线时确定字母?我认为有,因为当我让磁盘联机时,Windows 会自动给它正确的字母。因此,如果操作系统知道字母是什么,那么我也必须有一个 API 或工具可以使用。

谢谢,丹尼尔。

4

1 回答 1

0

不幸的是,当驱动器脱机时,驱动器号可供可能插入的另一个驱动器使用。因此,尽管 Windows 会记住特定驱动器曾经拥有的驱动器号,并且在重新插入时会尝试重新使用相同的驱动器,但如果插入的另一个驱动器使用了记住的驱动器,那么旧驱动器将获得不同的驱动器号如果它被插入。

但是,如果该驱动器当前未连接,则无法按名称或字母打开物理驱动器。您将简单地得到“找不到文件”的等价物。

于 2016-06-12T07:39:14.650 回答