gpt4 book ai didi

windows - 挂载虚拟硬盘后查找卷信息

转载 作者:行者123 更新时间:2023-12-03 07:48:36 30 4
gpt4 key购买 nike

我使用 Windows 磁盘管理管理单元来创建、初始化和格式化一些虚拟硬盘 (VHD)。我可以轻松地手动附加和访问这些 VHD,但在通过 API 管理它们时遇到问题。

我无法找到一种简单的方法来确定附加虚拟磁盘卷后的驱动器号。我发现了以下approach但它看起来很复杂。有更好的办法吗?

这是我到目前为止所拥有的……并不多。

var
StorageType: TVirtualStorageType;
Path: UnicodeString;
Handle: THandle;
begin
StorageType.DeviceId := VIRTUAL_STORAGE_TYPE_DEVICE_VHD;
StorageType.VendorId := VIRTUAL_STORAGE_TYPE_VENDOR_MICROSOFT;

Path := 'C:\tmp\small-usb.vhd';

OpenVirtualDisk(@StorageType, PWideChar(Path), VIRTUAL_DISK_ACCESS_ALL, OPEN_VIRTUAL_DISK_FLAG_NONE, nil, @Handle);
AttachVirtualDisk(Handle, nil, ATTACH_VIRTUAL_DISK_FLAG_NONE, 0, nil, nil);
// volume is visible in windows explorer at this point but
// I don't know the drive letter
end

最佳答案

我不知道这是否是最好的方法,但您可以使用 GetVirtualDiskPhysicalPath以“\\.\PhysicalDriveX”格式获取已挂载的VHD的路径。使用该路径,您可以查询获取磁盘包含的卷的磁盘对象(不要忘记,VHD 可以有多个分区和卷,就像物理硬盘一样),然后获取分配的挂载点的列表(不一定是驱动器号 - VHD 可以安装在 NTFS 安装点)。

我不熟悉您在提供的示例中使用的语言。那是德尔福吗?

关于windows - 挂载虚拟硬盘后查找卷信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19799370/

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