gpt4 book ai didi

c++ - 如何获取 EFI 系统分区的卷名?

转载 作者:可可西里 更新时间:2023-11-01 10:44:03 25 4
gpt4 key购买 nike

我有一台带有 GPT 驱动器的 Windows 机器。
我有一个 EFI 系统分区的 DOS 设备名称作为 bcdedit 的输出。
我想打开这个分区的句柄并通过 QueryDosDevice() 获取 DOS 名称,以便与我已经拥有的 DOS 名称进行比较。
我尝试使用 FindFirstVolume/FindNextVolume 查找卷名以从 QueryDosDevice 获取 DOS 名称,但我没有找到 EFI 系统分区的卷。 WMI 也没有此分区的卷。

如何从 C++ 代码中获取 EFI 系统分区的卷名以在 QueryDosDevice 中使用它?

最佳答案

试试这个。下载并安装 WinObj(来自 MS technet)。在\Device 目录中查找 EFI 系统分区的逻辑设备名称。请注意,\Device 目录中的逻辑设备名称的格式为 \Device\Harddisk<N>\Partition<M>其中 N 是硬盘编号,M 是分区编号。注意 M 等于 0 表示整个硬盘,M > 0 表示单个分区。数字 N 与您将在磁盘管理器 (diskmgmt.msc) 和 diskpart 中看到的数字相同。

一旦获得逻辑设备名称,请查看\GLOBAL??该名称的别名的目录。如果您找到别名,那么您就可以开始了。如果找不到别名,则需要使用可以访问\Device names 的 Win32 API。我认为至少有一个这样的 API,因为我多年前写了一个程序,它以\Device names 作为参数。

关于c++ - 如何获取 EFI 系统分区的卷名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35102053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com