Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在考虑为我正在构建的数据库系统创建一个明智的写入缓存(WOW 缓存)排序,但是我在将文件区域映射到物理磁盘区域时遇到了麻烦。
我发现您可以使用DeviceIoControl来获取文件的虚拟集群分配,但我不确定如何将其与物理磁盘位置相关联。
这在 Windows 上可行吗?如果没有,是否有解决方法或更适用的写入缓存算法。
试试下面的。
CreateFile
\\?\C:
DeviceIoControl
IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS
因此,您将拥有一个磁盘(或更复杂设置中的多个磁盘)中一个卷的物理位置以及一个卷中文件的虚拟集群分配。结合这两条信息来获取文件在磁盘中的物理位置。
PS 可能你还需要一些辅助信息,比如磁盘扇区的大小和卷簇的大小。