windows的磁盘操作之六——获取系统所在物理磁盘号

来源:互联网 发布:cnc编程培训学校 编辑:程序博客网 时间:2024/05/18 20:09


很多情况下,我们在程序中需要获知操作系统安装在哪个分区上或者哪个物理磁盘上,进而对其进行一些操作或避免一些操作。例如要避免对系统磁盘分区表的删除操作。本节讨论如何获取操作系统所在的逻辑分区号和物理驱动器号。

还是先上代码。
/******************************************************************************
* Function: get the number of disk which the system installed on
* input: N/A
* output: N/A
* return: Succeed, disk number
*         Fail, -1
******************************************************************************/
DWORD GetSystemDiskPhysicalNumber(void)
{
    CHAR sysPath[DISK_PATH_LEN];
    CHAR diskLetter;
   DWORD diskNumber;
   
    DWORD ret = GetSystemDirectory(sysPath, sizeof(sysPath));
    if (ret == 0)
    {
        fprintf(stderr, "GetSystemDirectory() Error: %ld\n", GetLastError());
        return (DWORD)-1;
    }
    diskLetter = sysPath[0];
    diskNumber = GetPhysicalDriveFromPartitionLetter(diskLetter);
    return diskNumber;
}
 
代码分析:
1. 先调用GetSystemDirectory函数获取windows路径。sysPath中存储的路径形式为C:\WINDOWS\system32
2. 截取sysPath字符串的第一个字符,即可获得系统所在的分区盘符。
3. 根据逻辑分区号,调用第四节http://cutebunny.blog.51cto.com/301216/624379中讨论的GetPhysicalDriveFromPartitionLetter函数即可获得操作系统所在的物理磁盘号。

本文出自 “bunny技术坊” 博客,请务必保留此出处http://cutebunny.blog.51cto.com/301216/624609

0 0
原创粉丝点击