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

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 16:06 点击:

 

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

还是先上代码。

/******************************************************************************

* 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. 根据逻辑分区号,调用第四节中讨论的GetPhysicalDriveFromPartitionLetter函数即可获得操作系统所在的物理磁盘号。

本文出自 “bunny技术坊” 博客

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • dos命令原来也能这样用?允许查找未知子目录指定文件
    •  windows的磁盘操作之八——格式化分区的思考
    • windows篇-第三章 安装和配置DNS服务器
    • windows篇-第二章 安装和配置Web服务器
    • windows篇-第一章 windows server 2008安装和简单配置
    •  windows server 2003断开远程之后自动注销用户
    • Windows服务器下用IIS Rewrite组件为IIS设置伪静态方法
    • Windows 2008 R2 SP1部署WSUS 3.0 SP2
    • windows 2008 rodc扩展

    快速直达

    操作系统导航

    LinuxWindows虚拟机
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1