获取系统信息函数的使用
(1) GetSystemInfo函数
功能:返回关于当前系统的信息。
函数原型:
void WINAPI GetSystemInfo
(
_Out_ LPSYSTEM_INFO lpSystemInfo //LPSYSTEM_INFO结构体指针
);
SYSTEM_INFO结构体
功能:包括当前计算机的信息。这个信息包括计算机的体系结构、中央处理器的类型、系统中中央处理器的数量、页面的大小以及其他信息。
原型:
typedef struct _SYSTEM_INFO {
union{
DWORD dwOemId; //已经废弃的成员
struct {
WORD wProcessorArchitecture; //指定系统中的中央处理器的体系结构
WORD wReserved; //保留位
};
};
DWORD dwPageSize; //指定页面的大小和页面保护和委托的颗粒。这是被 VirtualAlloc 函数使用的页大小
LPVOID lpMinimumApplicationAddress; //指向应用程序和动态链接库(DLL)可以访问的最低内存地址
LPVOID lpMaximumApplicationAddress; //指向应用程序和动态链接库(DLL)可以访问的最高内存地址
DWORD dwActiveProcessorMask; //指定一个用来代表这个系统中装配了的中央处理器的掩码。二进制0位是处理器0;31位是处理器31
DWORD dwNumberOfProcessors; //指定系统中的处理器的数目
DWORD dwProcessorType; //指定系统中中央处理器的类型
DWORD dwAllocationGranularity; //指定已经被分配的虚拟内存空间的粒度
WORD wProcessorLevel; //指定系统体系结构依赖的处理器级别
WORD wProcessorRevision; //指定系统体系结构依赖的处理器修订版本号
}SYSTEM_INFO;
(2)下面是GetSystemInfo函数应用的具体代码:
#include <Windows.h>
#include <stdio.h>
int GetProcessorNum(void);
int main()
{
int iProcessNum;
iProcessNum = GetProcessorNum();
printf("本系统处理器个数为:%d\n",iProcessNum);
getchar();
return 0;
}
int GetProcessorNum(void)
{
SYSTEM_INFO sysInfo; //定义系统信息的结构体
GetSystemInfo(&sysInfo);
printf("中央处理器的体系结构为%d\n",sysInfo.wProcessorArchitecture); //获取系统信息
printf("系统页面大小为%d\n",sysInfo.dwPageSize);
printf("系统处理器数量%d\n",sysInfo.dwNumberOfProcessors);
printf("已经被分配的虚拟内存空间的粒度%d\n",sysInfo.dwAllocationGranularity);
return sysInfo.dwNumberOfProcessors;
(1) GetSystemInfo函数
功能:返回关于当前系统的信息。
函数原型:
void WINAPI GetSystemInfo
(
_Out_ LPSYSTEM_INFO lpSystemInfo //LPSYSTEM_INFO结构体指针
);
SYSTEM_INFO结构体
功能:包括当前计算机的信息。这个信息包括计算机的体系结构、中央处理器的类型、系统中中央处理器的数量、页面的大小以及其他信息。
原型:
typedef struct _SYSTEM_INFO {
union{
DWORD dwOemId; //已经废弃的成员
struct {
WORD wProcessorArchitecture; //指定系统中的中央处理器的体系结构
WORD wReserved; //保留位
};
};
DWORD dwPageSize; //指定页面的大小和页面保护和委托的颗粒。这是被 VirtualAlloc 函数使用的页大小
LPVOID lpMinimumApplicationAddress; //指向应用程序和动态链接库(DLL)可以访问的最低内存地址
LPVOID lpMaximumApplicationAddress; //指向应用程序和动态链接库(DLL)可以访问的最高内存地址
DWORD dwActiveProcessorMask; //指定一个用来代表这个系统中装配了的中央处理器的掩码。二进制0位是处理器0;31位是处理器31
DWORD dwNumberOfProcessors; //指定系统中的处理器的数目
DWORD dwProcessorType; //指定系统中中央处理器的类型
DWORD dwAllocationGranularity; //指定已经被分配的虚拟内存空间的粒度
WORD wProcessorLevel; //指定系统体系结构依赖的处理器级别
WORD wProcessorRevision; //指定系统体系结构依赖的处理器修订版本号
}SYSTEM_INFO;
(2)下面是GetSystemInfo函数应用的具体代码:
#include <Windows.h>
#include <stdio.h>
int GetProcessorNum(void);
int main()
{
int iProcessNum;
iProcessNum = GetProcessorNum();
printf("本系统处理器个数为:%d\n",iProcessNum);
getchar();
return 0;
}
int GetProcessorNum(void)
{
SYSTEM_INFO sysInfo; //定义系统信息的结构体
GetSystemInfo(&sysInfo);
printf("中央处理器的体系结构为%d\n",sysInfo.wProcessorArchitecture); //获取系统信息
printf("系统页面大小为%d\n",sysInfo.dwPageSize);
printf("系统处理器数量%d\n",sysInfo.dwNumberOfProcessors);
printf("已经被分配的虚拟内存空间的粒度%d\n",sysInfo.dwAllocationGranularity);
return sysInfo.dwNumberOfProcessors;
}