您的位置:首页 > 其它

获取磁盘相关信息以及网卡相关信息

2014-12-03 20:28 357 查看
参数 类型及说明

lpRootPathName String,欲获取信息的那个卷的根路径

lpVolumeNameBuffer String,用于装载卷名(卷标)的一个字串

nVolumeNameSize Long,lpVolumeNameBuffer字串的长度

lpVolumeSerialNumber Long,用于装载磁盘卷序列号的变量

lpMaximumComponentLength Long,指定一个变量,用于装载文件名每一部分的长度。例如,在“c:\component1\component2.ext”的情况下,它就代表component1或component2名称的长度

lpFileSystemFlags Long,用于装载一个或多个二进制位标志的变量。对这些标志位的解释如下:

FS_CASE_IS_PRESERVED 文件名的大小写记录于文件系统

FS_CASE_SENSITIVE 文件名要区分大小写

FS_UNICODE_STORED_ON_DISK 文件名保存为Unicode格式

FS_PERSISTANT_ACLS 文件系统支持文件的访问控制表(ACL)安全机制

FS_FILE_COMPRESSION 文件系统支持逐文件的进行文件压缩

FS_VOL_IS_COMPRESSED 整个磁盘卷都是压缩的

lpFileSystemNameBuffer String,指定一个缓冲区,用于装载文件系统的名称(如FAT,NTFS以及其他)

nFileSystemNameSize Long,lpFileSystemNameBuffer字串的长度。

获取网卡相关信息

#include <winsock2.h>

#include <iphlpapi.h>

#include <stdio.h>

#pragma comment(lib,"Iphlpapi.lib")

int main()

{

// 初始化winsock

PIP_ADAPTER_INFO pAdapterInfo;

PIP_ADAPTER_INFO pAdapter = NULL;

ULONG ulOutBufLen = sizeof(IP_ADAPTER_INFO);

pAdapterInfo = (PIP_ADAPTER_INFO)malloc(ulOutBufLen);

DWORD dwRetVal = GetAdaptersInfo( pAdapterInfo, &ulOutBufLen);

// 第一次调用GetAdapterInfo获取ulOutBufLen大小

if (dwRetVal == ERROR_BUFFER_OVERFLOW)

{

free(pAdapterInfo);

pAdapterInfo = (IP_ADAPTER_INFO *) malloc (ulOutBufLen);

dwRetVal = GetAdaptersInfo( pAdapterInfo, &ulOutBufLen);

}

if (dwRetVal == NO_ERROR)

{

pAdapter = pAdapterInfo;

while (pAdapter)

{

printf("Adapter Name: \t%s\n", pAdapter->AdapterName);

printf("Adapter Desc: \t%s\n", pAdapter->Description);

printf("MAC Addr: \t%02x-%02x-%02x-%02x-%02x-%02x\n",

pAdapter->Address[0],

pAdapter->Address[1],

pAdapter->Address[2],

pAdapter->Address[3],

pAdapter->Address[4],

pAdapter->Address[5]);

printf("IP Address: \t%s\n", pAdapter->IpAddressList.IpAddress.String);

printf("IP Mask: \t%s\n", pAdapter->IpAddressList.IpMask.String);

printf("Gateway: \t%s\n", pAdapter->GatewayList.IpAddress.String);

pAdapter = pAdapter->Next;

}// end while

}

else

{

printf("Call to GetAdaptersInfo failed.\n");

}

...卸载winsock ...

return 0;

} //end main
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: