zoukankan      html  css  js  c++  java
  • 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函数即可获得操作系统所在的物理磁盘号。

  • 相关阅读:
    CSS基本语法(慕课网学习笔记)
    Sublime Text3 显示左侧的目录树
    设置Sublime插件快捷键--实现CSS颜色选取
    HTML基本语法(慕课网学习笔记)
    cdoj1324卿学姐与公主
    模板-求组合数
    线段树--数据结构专题学习
    最短路径算法
    杭电1874畅通工程续 -最短路径
    杭电1027Ignatius and the Princess II模拟
  • 原文地址:https://www.cnblogs.com/chaikefusibushiji/p/6775771.html
Copyright © 2011-2022 走看看