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