SYSTEM_INFO

SYSTEM_INFO包括計算機的體系結構、中央處理器的類型、系統中中央處理器的數量、頁面的大小以及其他信息。

SYSTEM_INFO
SYSTEM_INFO,Win32 API函式GetSystemInfo所使用的結構體。

說明

SYSTEM_INFO結構體包含了當前計算機的信息。這個信息包括計算機的體系結構、中央處理器的類型、系統中中央處理器的數量、頁面的大小以及其他信息。

結構原型

typedef struct _SYSTEM_INFO { // sinf
union {
DWORDdwOemId;
struct {
WORD wProcessorArchitecture;
WORD wReserved;
};
};
DWORDdwPageSize;
LPVOID lpMinimumApplicationAddress;
LPVOID lpMaximumApplicationAddress;
DWORDdwActiveProcessorMask;
DWORDdwNumberOfProcessors;
DWORDdwProcessorType;
DWORDdwAllocationGranularity;
WORDwProcessorLevel;
WORDwProcessorRevision;
} SYSTEM_INFO;

結構成員

dwOemId:
已廢棄的成員,保留這個成員是為了向以前版本的Windows NT保持兼容。從Windows NT 3.51和Windows 95的預發行版本開始,使用這個成員的子分支wProcessorArchitecture。
Windows 95:系統總是把這個成員的值設為0,也就是PROCESSOR_ARCHITECTURE_INTEL的預定義值。
wProcessorArchitecture:指定系統中的中央處理器的體系結構,可以是如下的值:
PROCESSOR_ARCHITECTURE_INTEL
只適用於Windows NT: PROCESSOR_ARCHITECTURE_MIPS
只適用於Windows NT: PROCESSOR_ARCHITECTURE_ALPHA
只適用於Windows NT: PROCESSOR_ARCHITECTURE_PPC
只適用於Windows NT: PROCESSOR_ARCHITECTURE_UNKNOWN
wReserved:
保留供將來使用。
dwPageSize:
指定頁面的大小和頁面保護和委託的顆粒。這是被 VirtualAlloc 函式使用的頁大小。
lpMinimumApplicationAddress:
指向應用程式和動態程式庫(DLL)可以訪問的最低記憶體地址。
pMaximumApplicationAddress:
指向應用程式和動態程式庫(DLL)可以訪問的最高記憶體地址。
dwActiveProcessorMask:
指定一個用來代表這個系統中裝配了的中央處理器的掩碼。二進制0位是處理器0;31位是處理器31。
dwNumberOfProcessors:
指定系統中的處理器的數目。
dwProcessorType:
Windows 95:
指定系統中中央處理器的類型。
Windows NT:
這個成員已經不再有用了,但是為了向Windows 95和以前版本的Windows NT保持兼容,使用wProcessorArchitecture, wProcessorLevel, 和 wProcessorRevision 三個成員定義處理器的類型。
這個成員的值是下面中的一個:
PROCESSOR_INTEL_386
PROCESSOR_INTEL_486
PROCESSOR_INTEL_PENTIUM
只適用於Windows NT: PROCESSOR_MIPS_R4000
只適用於Windows NT: PROCESSOR_ALPHA_21064
dwAllocationGranularity:
指定已經被分配的虛擬記憶體空間的粒度。例如,如果使用VirtualAlloc函式請求分配1byte記憶體空間,那么將會保留由dwAllocationGranularity指定大小byte的地址空間。在過去,這個值被定為64K並固化在硬體中,但是其它的硬體體系結構可能需要另外的值。
wProcessorLevel:
Windows 95: 不使用這個成員。
Windows NT: 指定系統體系結構依賴的處理器級別。
如果 wProcessorArchitecture 的值是 PROCESSOR_ARCHITECTURE_INTEL,那么 wProcessorLevel可以使如下值中的一個:
含義
3 Intel 80386
4 Intel 80486
5 Pentium
如果 wProcessorArchitecture 的值是 PROCESSOR_ARCHITECTURE_MIPS,那么 wProcessorLevel 的值會是00xx的形式,xx是一個8位的立即數。這個成員可以使如下的值:
含義
0004 MIPS R4000
如果 wProcessorArchitecture 的值是 PROCESSOR_ARCHITECTURE_ALPHA, 那么 wProcessorLevel 的值會是xxxx的形式,xxxx是一個16位的處理器版本數(固件中版本號的低16位),它的值可以是下表中的一個:
十進制值 含義
21064 Alpha 21064
21066 Alpha 21066
21164 Alpha 21164
如果 wProcessorArchitecture 的值是PROCESSOR_ARCHITECTURE_PPC, 那么 wProcessorLevel 的值會是xxxx的形式,xxxx是一個16位的處理器版本數(處理器版本暫存器的高16位),它的值可以使下表中的一個:
十進制值 含義
1 PPC 601
3 PPC 603
4 PPC 604
6 PPC 603+
9 PPC 604+
20 PPC 620
wProcessorRevision:
Windows 95: 不使用這個成員。
Windows NT: 指定系統體系結構依賴的處理器修訂版本號。下表顯示了對於每一種處理器體系,處理器的修訂版本號是如何構成的。
處理器體系
Intel 80386 or 80486 類似xxyz的形式。如果xx等於0xFF,y-0xA 是型號,z 是步進表示符。例如,一個Intel 80486-D0 CPU 組成的系統返回0xFFD0。
如果xx不等於0xFF,'A'是步進表示符,yz 是次要步進表示符。
Intel Pentium, Cyrix, or NextGen 586 類似xxyy的形式。xx是型號,yy是步進值。例如,一個0x0201的值表明這是一個Model 2,Stepping 1的CPU。
MIPS 類似00xx的形式。xx是8位的處理器修訂號(PRId暫存器的低8位)。
ALPHA類似xxyy的形式。xxyy是處理器固件中的修訂號的低16位。這個值被顯示成這個樣子:Model 'A'+xx, yy被忽略。
PPC 類似xxyy的形式。xxyy是處理器版本暫存器的低16位。這個值被顯示為定點小數:xx.yy
注釋:
從Windows NT 3.51和Windows 95的預發行版本開始,SYSTEM_INFO結構發生了如下變化:
·dwOemId 成員被更改成一個結構。這個結構提供了一條新的可以用來描述Windows NT處理器體系結構的路,同時保持了與Windows 95 以及Windows NT以前版本的兼容性。
·dwProcessorType 成員在Windows NT系統上已經被廢棄,但是仍在Windows 95系統中使用。
·一個先前保留的位於結構末端的雙字值被wProcessorLevelwProcessorRevision 兩個成員替代。Windows 95 不使用這兩個成員。
快捷信息:
頭檔案:winbase.h
請參見GetSystemInfo

相關搜尋

熱門詞條

聯絡我們