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


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

    还是先上代码。
    /******************************************************************************
    * 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 ", GetLastError());
            return (DWORD)-1;
        }
        diskLetter = sysPath[0];
        diskNumber = GetPhysicalDriveFromPartitionLetter(diskLetter);
        return diskNumber;
    }
     
    代码分析:
    1. 先调用GetSystemDirectory 函数获取windows路径。sysPath中存储的路径形式为C:WINDOWSsystem32
    2. 截取sysPath字符串的第一个字符,即可获得系统所在的分区盘符。
    3. 根据逻辑分区号,调用第四节中讨论的GetPhysicalDriveFromPartitionLetter函数即可获得操作系统所在的物理磁盘号。

  • 相关阅读:
    JavaScript中null、undefined有什么区别?
    div居中和内容居中的css属性设置
    jQuery中有哪些选择器?
    Javascript正则表达式使用方式有哪些?
    写一些常见的Javascript正则表达式?
    body中的onload事件和document.ready()有什么区别?
    MapReduce架构设计
    谁在用 Hadoop
    淘宝在数据处理领域的项目及开源产品介绍
    ★Java多线程编程总结 系列 转
  • 原文地址:https://www.cnblogs.com/chaikefusibushiji/p/6775771.html
Copyright © 2020-2023  润新知