我需要找到一种方法来以编程方式确定Windows用于引导的磁盘驱动器.换句话说,我需要一种来自Windows的方法来确定BIOS用于启动整个系统的驱动器.
Windows是否公开了一个界面来发现这个?随着Windows API的大小,我希望那里埋藏着一些可以解决问题的东西.
特里
ps只是读取硬盘的第一个扇区并不是在陶醉任何东西.在我的开发盒上我有两个硬盘,当我查看任一硬盘上前几个扇区的内容时,我有一个标准的锅炉板MBR.
编辑以澄清一些事情.我想识别设备的方式是使用字符串来识别物理磁盘驱动器(而不是逻辑磁盘驱动器).物理磁盘驱动器的格式为"\\.\ PHYSICALDRIVEx",其中x是数字.另一方面,逻辑驱动器由形式为"\\.\ x"的字符串标识,其中x是驱动器号.
编辑以讨论抛出的一些想法.知道Windows用来启动哪个逻辑卷对我没有帮助.这就是原因.假设C:正在使用镜像RAID设置.现在,这意味着我们至少有两个物理驱动器.现在,我获得了从逻辑驱动器到物理驱动器的映射,我发现该卷使用了两个物理驱动器.Windows使用哪一个启动?当然,这假设用于引导的Windows物理驱动器与包含MBR的物理驱动器相同.
进入 Control Panel
System and Security
Administrative Tools
启动该System Configuration
工具
如果安装了多个Windows副本,则引导的那个副本将被命名为:
Windows 7 (F:\Windows) Windows 7 (C:\Windows) : Current OS, Default OS
除非C:不是Windows启动的驱动器.
解析%SystemRoot%变量,它包含windows文件夹的位置(即c:\ windows).