注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

信息 灵感 创新

I? =Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

we are 5. Mathematics, Computation, Programming, Engineering, and Making fun of life.

网易考拉推荐

GetVolumeInformation  

2014-07-05 11:09:47|  分类: Windows编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

该函数用来获取卷的一些信息。

函数说明当然是微软的最权威了,链接是:

http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=ZH-CN&k=k(%22WINBASE%2fGETVOLUMEINFORMATIONA%22);k(GETVOLUMEINFORMATIONA)&rd=true

不过是英文的,需要自己慢慢啃。

下面是测试代码,获取C盘的一些信息:

#include <stdlib.h>
#include <stdio.h>
#include "windows.h"

int main()
{
    char szVolNameBuffer[MAX_PATH]="";
    char szFileSystemNameBuffer[MAX_PATH]="";
    DWORD dwVolSN,dwMaxComponentLen,dwFileSystemFlag;
    BOOL ret=GetVolumeInformationA("C:\\",szVolNameBuffer,MAX_PATH,&dwVolSN,&dwMaxComponentLen,&dwFileSystemFlag,szFileSystemNameBuffer,MAX_PATH);
    if(ret)
    {
        printf("Volume Information of \"C:\\\"\n");
        printf("Volume Name:%s\n",szVolNameBuffer);
        printf("Volume Serial Number:%ld\n",dwVolSN);//Serial Number could be negative
        printf("Volume Max Component Length:%d\n",dwMaxComponentLen);
        printf("Volume File System Flag:%d\n",dwFileSystemFlag);
        printf("Volume File System Name:%s\n",szFileSystemNameBuffer);
    }
    return 0;
}
运行效果如下:

image

可以看到,序列号是负数,这多少让人有点意外,但是通过网上查找,发现Windows操作系统自带了查看卷序列号的工具,就是在命令行下输入“wmic volume”,发现还真有几个卷的序列号为负数。如果使用命令行“vol C:”得到的结果是十六进制的形式,这个时候就不会出现负数的情况了。

这里还得说明,这个序列号是磁盘被格式化的时候操作系统分配给卷的,与硬盘的序列号,例如“WD-WCAATF******”不同,后者是硬盘生产厂商为每个硬盘赋予的序列号,该序列号不会因为磁盘被格式化而改变,也不可能用Windows下的软件来修改,网上流传的所谓修改磁盘序列号的工具,其实都只是修改了卷的序列号。

  评论这张
 
阅读(501)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016