SYSTEM_INFO

SYSTEM_INFO,Win32 API函数GetSystemInfo所使用的结构体。

说明:
SYSTEM_INFO结构体包含了当前计算机的信息。这个信息包括计算机的体系结构、中央处理器的类型、系统中中央处理器的数量、页面的大小以及其他信息。
结构原型:

typedef  struct  _SYSTEM_INFO  { // sinf  
    union 
        DWORD  dwOemId; 
        struct 
            WORD wProcessorArchitecture; 
            WORD wReserved; 
        }; 
    }; 
    DWORD  dwPageSize; 
    LPVOID lpMinimumApplicationAddress; 
    LPVOID lpMaximumApplicationAddress; 
    DWORD  dwActiveProcessorMask; 
    DWORD  dwNumberOfProcessors; 
    DWORD  dwProcessorType; 
    DWORD  dwAllocationGranularity; 
    WORD  wProcessorLevel; 
    WORD  wProcessorRevision; 

}  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

SYSTEM_INFO相关推荐

  1. Jetson Xavier NX上安装scipy报错:numpy.distutils.system_info.NotFoundError: No lapack/blas resources found

    文正目录: 1 问题说明 2 解决问题 3 其他的我尝试失败的方法 1 问题说明 在Jetson Xavier NX嵌入式设备上(ARM架构)安装scipy的时候报错:numpy.distutils. ...

  2. dmalloc 原文 翻译整理

    http://blog.csdn.net/cardinal_508/article/details/5553387 L13 从快速入门开始(Quickstart) 这个库是一个文件中所有简化用法中最常 ...

  3. win32 wmi编程获取系统信息

    //GetSysInfo.h#pragma once#include <afxtempl.h>class GetSysInfo { public:GetSysInfo(void);~Get ...

  4. [Erlang33]使用recon从网页查看Erlang运行状态

    recon_web observer web页面查看,不需求wx GUI 需要Erlang安装wx GUI application 保证可以在生产环境中被安全调用 如果对于ets非常多或进程达到一定数 ...

  5. c语言名字程序,c语言获得程序位数和操作系统位数和名称

    // vcis64.cpp : VC 64位程序开发心的--c语言获得程序位数和操作系统位数和名称. #include #include #include #include // 获取程序位数(被编译 ...

  6. 给自己的程序添加BugReport

    转载:https://www.easyicon.net/(免费icon) 转载:https://www.codeproject.com/Articles/5260/XCrashReport-Excep ...

  7. shell写的检测linux系统硬件信息的脚本

    前面用python写了一个检测windonws硬件信息的脚本,这里是很久之前用shell写的一个linux系统硬件信息检测脚本,可以对照看一下.检测内容基本一样:操作系统信息.内存.CPU.硬盘分区及 ...

  8. 完毕port(CompletionPort)具体解释 - 手把手教你玩转网络编程系列之三

       手把手叫你玩转网络编程系列之三    完毕port(Completion Port)具体解释                                                    ...

  9. c语言 sysinfo_操作系统:内存分配(C语言 winapi)

    //windows 内存分配. windows/visual stdio*/cl xxx.cpp #include #include#include#include#include#include#i ...

最新文章

  1. python类修饰器_《Python有什么好学的》之修饰器
  2. Java线程详解(18)-障碍器
  3. win7系统如何取消自动开机
  4. 辅助类——掌握内容管道
  5. pandas dataframe对多列同时排序
  6. 神经网络-反向传播算法
  7. ios 控件徽章_一行代码给你的控件加上徽章(Badge)
  8. web界面设计工具_您应该了解的14个Web设计工具
  9. PDF转换为其他格式的方法
  10. 游戏开发之C++类中的static、const梳理总结(C++基础)
  11. java输出int_如何使打印整数函数(没有printf)输出INT_MAX
  12. find -regex
  13. php计算周长,PHP实现的简单三角形、矩形周长面积计算器分享
  14. iOS - 手机摇一摇
  15. AES算法在Wi-Fi加密中的应用
  16. CF1525C Robot Collisions(思维,类似括号匹配)
  17. 夜神模拟器4K模拟配置
  18. 计算机操作员考试模拟在线考试,计算机操作员高级问答集考试卷模拟考_试题...
  19. 华硕开机时出现无法验证数字签名驱动
  20. 常见的数据校验方式(奇偶,累加,CRC校验)

热门文章

  1. 测绘——如何在win10环境下安装CAD2006+CASS7.0
  2. Excel 统计起止时间
  3. Linux centos7 DNS服务器基于bind正反解析服务的搭建
  4. AES解密报错:Given final block not properly padded. Such issues can arise if a bad key is used during dec
  5. Vue3 tailwindui
  6. 外设驱动库开发笔记33:LCD1602液晶显示屏驱动
  7. 解决 command not found: brew :Mac安装Brew
  8. CentOS7:配置防火墙
  9. 错误解决方案:FATAL: Error inserting cmemk (/lib/modules/2.6.37/kernel/drivers/dsp/cmemk.ko): Bad address
  10. linux系统端口的5种状态及含义