【发布时间】:2011-05-01 19:54:49
【问题描述】:
目标
我正在将一个文件系统移植到 Windows,并且正在为 mounter 可执行文件编写一个更像 Windows 的界面。这个过程的一部分是让用户找到一个分区并选择一个驱动器号。最终,分区的选择必须导致我可以使用CreateFile()、open()、fopen() 或类似的方式打开。
潜在客户
Windows 似乎围绕着卷的概念展开,它似乎与磁盘不太相似,并且只发生在已经挂载的文件系统中。
我所拥有的有希望的潜在客户包括:
但是,这些都以卷或偏移量结尾,而不是我所追求的 /dev/sda1 分区特定样式句柄。
This question 是在一个非常相似的事情之后,我认为是赏金,直到我观察到 OP 是在物理磁盘名称之后,而不是分区之后。 This answer 包含一种暴力破解分区名称的方法,我想避免这种情况(或查看包含可能路径边界的文档)。
问题
我想要:
- 更正了 Windows 中未挂载分区的术语和文档。
- 可靠地检索所有可用分区的有效且记录在案的方法。
- 最接近 Linux 中可用的分区文件抽象,其中所有 IO 都绑定到打开的分区的磁盘的适当区域。
更新0
虽然主要目标仍然是打开原始分区,但似乎解决方案可能涉及首先获取每个磁盘驱动器的句柄,然后依次使用该句柄来获取每个分区。需要如何枚举所有磁盘驱动器(即使是那些尚未安装卷的磁盘驱动器)。
【问题讨论】:
-
@Amigable Clark Kant:你的意思是我已经链接到的问题?
-
嗯,是的,但特别是那个答案。
标签: c++ c windows winapi disk-partitioning