如何获取 EFI 系统分区的卷名
How can I get volume name for EFI system partition?
我有一台带有GPT驱动器的Windows机器。
我有一个 EFI 系统分区的 DOS 设备名称作为 bcdedit 的输出。
我想打开这个分区的句柄,并通过QueryDosDevice()获取DOS名称,以与我已经拥有的DOS名称进行比较。
我尝试使用 FindFirstVolume/FindNextVolume 查找卷名以从 QueryDosDevice 获取 DOS 名称,但没有找到 EFI 系统分区的卷。WMI 也没有此分区的卷。
如何从C++代码中获取 EFI 系统分区的卷名以在 QueryDosDevice 中使用它?
试试这个。下载并安装 WinObj(来自 MS technet)。在 \Device 目录中查找 EFI 系统分区的逻辑设备名称。请注意,\Device 目录中的逻辑设备名称采用 DeviceHarddisk<N>Partition<M>
格式,其中 N 是硬盘号,M 是分区号。注意 M 等于零表示整个硬盘,M> 0 表示单个分区。数字N与您在磁盘管理器(diskmgmt.msc)和diskpart中看到的数字相同。
获取逻辑设备名称后,在 \GLOBAL?? 目录中查找该名称的别名。如果你找到一个别名,那么你就可以开始了。如果找不到别名,则需要使用可以访问 \Device 名称的 Win32 API。我认为至少有一个这样的API,因为我多年前编写了一个程序,将\Device names作为参数。
相关文章:
- C++,系统无法执行指定的程序
- 在UNIX系统中使用DIR查找文件的字节大小
- 错误处理.将系统错误代码映射到泛型
- 当系统的卷被修改时,如何修改WASAPI环回捕获卷
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- 是否有类似std::lower_bound的函数,而不需要排序/分区输入
- 在C++游戏中与库存系统作斗争
- 文件系统:复制功能的速度秘诀是什么
- c++17文件系统::recursive_directory迭代器()在mac上没有给出这样的目录,但在windows上
- 在gtest.中使用fff.h模拟系统API
- 如何制作无限制照明系统
- 系统.将数组移交给c#中动态加载的c++DLL时发生AccessViolationException
- 如何传递多个 std::文件系统选项?
- 遍历顺序由 std::文件系统directory_iterator给出
- C++系统找不到指定的文件错误
- 系统参数信息A 与 SPI_GETMOUSE 返回 0
- libstdc++ 文件系统中未初始化的用法?
- 如何获取 EFI 系统分区的卷名
- 在Linux的C/C++中,如何确定已安装或未安装分区的文件系统类型
- FindFirstVolume不返回EFI系统分区