windows編程學習——獲取系統信息

(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;
}

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章