【发布时间】:2013-08-20 12:50:06
【问题描述】:
我想知道文件在什么物理媒体上(通过文件名或句柄)。
我读过here,我可以通过DeviceIoControl 调用来确定给定分区句柄的物理驱动器。
但是如何从文件名中获取分区句柄? (因为 NTFS 允许在文件夹中挂载分区,所以我不能简单地按驱动器号。)
我问的原因是,使用异步方法将文件复制到另一个物理驱动器最快,但在同一个驱动器上,使用更大的缓冲区同步完成时速度最快。我想编写一个函数来确定给定文件和目标的最佳复制算法。
【问题讨论】:
-
我希望您必须在所有连接的媒体中搜索该文件,因为 Windows 没有保留将文件名映射到卷号的表。
-
我希望你的意思是逻辑驱动。例如,我的 SQL 服务器将其主要数据存储在三个运行 RAID5 的 SAS 15K 驱动器上。存储在 RAID 上的文件同时在 所有 驱动器上(分布在它们之间)。
-
@WhozCraig 是的,但是如果两个逻辑驱动器驻留在同一个物理驱动器上(如果可能的话),我仍然希望使用同步复制。