将驱动器号转换为分区ID /磁盘ID

时间:2012-02-15 14:58:48

标签: windows winapi drive-letter deviceiocontrol

根据驱动器号,如何在不使用注册表的情况下获取OSImage InstallTo Partition IDDisk ID

2 个答案:

答案 0 :(得分:5)

我需要WMIWin32_DiskPartition。现在来弄清楚如何使用WMI从驱动器号中获取此信息。

Win32_LogicalDisk也很有用,MSDN Examplethis stackoverflow answer

更新:嗯,这不行!无论如何都不在Windows Installer中{WMI is missing from Windows PE !!)所以我使用了另一个答案QueryDosDevice(例如\\.\PhysicalDisk1\Partition0)并将其一起黑客攻击。这让微软感到厌烦,接受安装程序中的一条该死的路径。


答案: IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS可以获得Disk ID。而DeviceIoControl IOCTL_DISK_GET_PARTITION_INFO_EX(感谢TLama)让我得到了Partition ID

答案 1 :(得分:2)

您是否尝试过调用QueryDosDevice