c# API使用GetVolumeInformation函数获取硬盘信息
2013-04-09 10:06
627 查看
API 说明(Code:C#)-------------
[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
public static extern bool GetVolumeInformation(
string lpRootPathName, // 欲获取信息的那个卷的根路径
string lpVolumeNameBuffer, // 用于装载卷名(卷标)的一个字串
int nVolumeNameSize, // lpVolumeNameBuffer字串的长度
ref int lpVolumeSerialNumber, // 用于装载磁盘卷序列号的变量
int lpMaximumComponentLength, // 指定一个变量,用于装载文件名每一部分的长度。例如,在“c:\component1\component2.ext”的情况下,它就代表component1或component2名称的长度 .
int lpFileSystemFlags, // 用于装载一个或多个二进制位标志的变量。对这些标志位的解释如下:
FS_CASE_IS_PRESERVED 文件名的大小写记录于文件系统
FS_CASE_SENSITIVE 文件名要区分大小写
FS_UNICODE_STORED_ON_DISK 文件名保存为Unicode格式
FS_PERSISTANT_ACLS 文件系统支持文件的访问控制列表(ACL)安全机制
FS_FILE_COMPRESSION 文件系统支持逐文件的进行文件压缩
FS_VOL_IS_COMPRESSED 整个磁盘卷都是压缩的
string lpFileSystemNameBuffer, //指定一个缓冲区,用于装载文件系统的名称(如FAT,NTFS以及其他) int nFileSystemNameSize // lpFileSystemNameBuffer字串的长度
);
/// <summary>
/// 获取硬盘ID
/// </summary>
/// <returns></returns>
public string GetdiskID()
{
const int MAX_FILENAME_LEN = 256;
int retVal = 0;
int a = 0;
int b = 0;
string str1 = null;
string str2 = null;
GetVolumeInformation(
@"C:\",
str1,
MAX_FILENAME_LEN,
ref retVal,
a,
b,
str2,
MAX_FILENAME_LEN);
return retVal.ToString();
}
[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
public static extern bool GetVolumeInformation(
string lpRootPathName, // 欲获取信息的那个卷的根路径
string lpVolumeNameBuffer, // 用于装载卷名(卷标)的一个字串
int nVolumeNameSize, // lpVolumeNameBuffer字串的长度
ref int lpVolumeSerialNumber, // 用于装载磁盘卷序列号的变量
int lpMaximumComponentLength, // 指定一个变量,用于装载文件名每一部分的长度。例如,在“c:\component1\component2.ext”的情况下,它就代表component1或component2名称的长度 .
int lpFileSystemFlags, // 用于装载一个或多个二进制位标志的变量。对这些标志位的解释如下:
FS_CASE_IS_PRESERVED 文件名的大小写记录于文件系统
FS_CASE_SENSITIVE 文件名要区分大小写
FS_UNICODE_STORED_ON_DISK 文件名保存为Unicode格式
FS_PERSISTANT_ACLS 文件系统支持文件的访问控制列表(ACL)安全机制
FS_FILE_COMPRESSION 文件系统支持逐文件的进行文件压缩
FS_VOL_IS_COMPRESSED 整个磁盘卷都是压缩的
string lpFileSystemNameBuffer, //指定一个缓冲区,用于装载文件系统的名称(如FAT,NTFS以及其他) int nFileSystemNameSize // lpFileSystemNameBuffer字串的长度
);
/// <summary>
/// 获取硬盘ID
/// </summary>
/// <returns></returns>
public string GetdiskID()
{
const int MAX_FILENAME_LEN = 256;
int retVal = 0;
int a = 0;
int b = 0;
string str1 = null;
string str2 = null;
GetVolumeInformation(
@"C:\",
str1,
MAX_FILENAME_LEN,
ref retVal,
a,
b,
str2,
MAX_FILENAME_LEN);
return retVal.ToString();
}
相关文章推荐
- 使用GetVolumeInformation获取硬盘信息
- GetVolumeInformation获取磁盘信息与DeviceIoControl获取硬盘信息
- VS6.0下使用 IP Help API(Iphlpapi.dll)系列函数之GetAdaptersAddresses(GetAdaptersInfo) 获取网卡信息简述
- GetVolumeInformation获取磁盘信息与DeviceIoControl获取硬盘信息
- 使用gethostname()函数和gethostbyname()函数获取主机相关信息
- 利用API函数 GetVolumeInformation 获取盘区信息
- 使用GetLogicalProcessorInformation获取逻辑处理器的详细信息(NUMA节点数、物理CPU数、CPU核心数、逻辑CPU数、各级Cache)
- 使用gethostname()函数和gethostbyname()函数获取主机相关信息
- 使用GetLogicalProcessorInformation获取逻辑处理器的详细信息(NUMA节点数、物理CPU数、CPU核心数、逻辑CPU数、各级Cache)
- 获取Exe文件版本信息的函数(使用GetFileVersionInfo得到TFileVersionInfo结构体,包含12项内容)
- 使用gethostname()函数和gethostbyname()函数获取主机相关信息
- 使用GetLogicalProcessorInformation获取逻辑处理器的详细信息(NUMA节点数、物理CPU数、CPU核心数、逻辑CPU数、各级Cache)
- 使用GetLogicalProcessorInformation获取逻辑处理器的详细信息(NUMA节点数、物理CPU数、CPU核心数、逻辑CPU数、各级Cache)
- 使用API中的函数:NetUserEnum来枚举用户 NetUserGetInfo来获取用户的信息
- 使用GetLogicalProcessorInformation获取逻辑处理器的详细信息(NUMA节点数、物理CPU数、CPU核心数、逻辑CPU数、各级Cache)
- 使用gethostname()函数和gethostbyname()函数获取主机相关信息
- MFC杂项01 重写键盘相应事件 +创建和装载常规dll文件 +GetVolumeInformation获取本地硬盘序列号
- VC中GetLastError()获取错误信息的使用
- VC中GetLastError()获取错误信息的使用,以及错误代码的含义
- 在Autodesk Vault 2014中使用VDF(Vault Development Framework) API获取所有文件的属性信息