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函数即可获得操作系统所在的物理磁盘号。

  • 相关阅读:
    form表单
    JsonResponse对象
    HttpRequest对象
    Django基础
    ssh私钥登录
    监控window目录是否为空自定义item
    redis频繁报错Cannot allocate memory
    脱敏html文件文件
    MySQL删除数据
    ftp服务器搭建
  • 原文地址:https://www.cnblogs.com/chaikefusibushiji/p/6775771.html
Copyright © 2011-2022 走看看