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

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

typedef struct _SYSTEM_INFO { // sinf
  union {
    DWORD dwOemId;      已废弃的成员,保留这个成员是为了向以前版本的Windows NT保持兼容。从Windows NT3.51和Windows 95的预发行版本开始,使用这个成员的子分支wProcessorArchitecture。
                    Windows 95:系统总是把这个成员的值设为0,也就是PROCESSOR_ARCHITECTURE_INTEL的预定义值。
    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;
wProcessorArchitecture: 指定系统中的中央处理器的体系结构,可以是如下的值:
PROCESSOR_ARCHITECTURE_INTEL
只适用于Windows NT: PROCESSOR_ARCHITECTURE_MIPS
只适用于Windows NT: PROCESSOR_ARCHITECTURE_ALPHA
只适用于Windows NT: PROCESSOR_ARCHITECTURE_PPC
只适用于Windows NT: PROCESSOR_ARCHITECTURE_UNKNOWN


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系统中使用。
·一个先前保留的位于结构末端的双字值被wProcessorLevel 和 wProcessorRevision 两个成员替代。Windows 95 不使用这两个成员。

SYSTEM_INFO的更多相关文章

  1. numpy.distutils.system_info.NotFoundError: no lapack/blas resources found

    python35用pip安装scipy的时候报错 numpy.distutils.system_info.NotFoundError: no lapack/blas resources found 原 ...

  2. numpy.distutils.system_info.NotFoundError: no lapack/blas resources found问题解决

    操作环境 Python3.6 + Windows7 问题现象   利用pip自动安装seaborn/numpy/scipy(pip install seaborn)模块失败,提示numpy.distu ...

  3. python3安装pandas执行pip3 install pandas命令后卡住不动的问题及安装scipy、sklearn库的numpy.distutils.system_info.NotFoundError: no lapack/blas resources found问题

    一直尝试在python3中安装pandas等一系列软件,但每次执行pip3 install pandas后就卡住不动了,一直停在那,开始以为是pip命令的版本不对,还执行过 python -m pip ...

  4. [c++] SYSTEM_INFO

    SYSTEM_INFO,Win32 API函数GetSystemInfo所使用的结构体. 说明 SYSTEM_INFO结构体包含了当前计算机的信息.这个信息包括计算机的体系结构.中央处理器的类型.系统 ...

  5. C++随笔:.NET CoreCLR之GC探索(3)

    有几天没写GC相关的文章了哈,今天我讲GC的方式是通过一个小的Sample来讲解,这个小的示例代码只有全部Build成功了才会有.地址为D:\coreclr2\coreclr\bin\obj\Wind ...

  6. [Erlang 0118] Erlang 杂记 V

       我在知乎回答问题不多,这个问题: "对你职业生涯帮助最大的习惯是什么?它是如何帮助你的?",我还是主动回答了一下.    做笔记 一开始笔记软件做的不好的时候就发邮件给自己, ...

  7. erlang 在线生成crashdump

    一般说来抓dump 4种 方式:      1. erlang:halt(“abort”).      2. 在erlang shell下输入CTRL C + “大写的A”      3.等着进程崩溃 ...

  8. erlang 故障排查工具

    系统级别perf top, dstat -tam, vtune 都能很好分析beam 瓶颈,本文主要erlang 级别排查: 1. 反编译 确认线上运行代码是否正确,reltools没掌握好,升级偶尔 ...

  9. 获取Windows操作系统的CPU使用率以及内存使用率

    此功能参考了ProcessHacker项目的代码. 声明定义 typedef struct _UINT64_DELTA { ULONG64 Value; ULONG64 Delta; } UINT64 ...

随机推荐

  1. python 二进制转换

    #二进制装换msg = "大家好"msg1 = msg.encode(encoding='utf-8')#转换成二进制print(msg1)msg2 = msg1.decode(' ...

  2. beanshell postprocessor解决编码

    beanshell postprocessor  String s=new String(prev.getResponseData(),"UTF-8");        char  ...

  3. C++ 用lambda代替 unique_ptr 的Deleter

    C++ 用lambda代替 unique_ptr 的Deleter 代码 #include <iostream> #include <cstdlib> #include < ...

  4. 从概念到业务来看 To B 和 To C 产品区别在哪?

    自从互联网火了以后,一大堆 o2o,b2b,c2c 的产品出现,这些名词也渐渐为人熟知,但很多人对这些产品的理解也是停留在概念上,实际上绝大部分人用的都是 To C(也写作2c)产品,比如微信,qq ...

  5. 使用BootStrap框架设置全局CSS样式

    一.排版 标题 HTML 中的所有标题标签,<h1> 到 <h6> 均可使用.另外,还提供了 .h1 到 .h6 类,为的是给内联(inline)属性的文本赋予标题的样式. & ...

  6. A+B Format

    1001.A+B Format (20) github上的object-roiented链接 https://github.com/a877306134/object-oriented/tree/ma ...

  7. Java201521123071《Java程序设计》第八周学习总结

    第八周-集合与泛型 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1. <T extends Comparable>表示T是绑定类型(Compa ...

  8. 201521123042《Java程序》第二周总结

    1. 本周学习总结 了解枚举类型的使用方法. 学会使用ArrayList替换数组,并且学会运用相关函数,例如: strList.contains(str)(判断数组中是否包含字符串str,包含则返回t ...

  9. 201521123044 《Java程序设计》第01周学习总结

    1.本章学习总结 你对于本章知识的学习总结 1.了解了Java的发展史. 2.学习了什么是JVM,区分JRE与JDK,下载JDK. 3.从C语言的.c 到C++的 .cpp再到Java的.java,每 ...

  10. 201521123040《Java程序设计》第11周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) ...