zoukankan      html  css  js  c++  java
  • OSVERSIONINFOEX structure

    OSVERSIONINFOEX structure
     

    收藏:Contains operating system version information. The information includes major and minor version numbers, a build number, a platform identifier, and information about product suites and the latest Service Pack installed on the system. This structure is used with the GetVersionEx and VerifyVersionInfo functions.

    Syntax

    typedef struct _OSVERSIONINFOEX {
      DWORD dwOSVersionInfoSize;
      DWORD dwMajorVersion;
      DWORD dwMinorVersion;
      DWORD dwBuildNumber;
      DWORD dwPlatformId;
      TCHAR szCSDVersion[128];
      WORD  wServicePackMajor;
      WORD  wServicePackMinor;
      WORD  wSuiteMask;
      BYTE  wProductType;
      BYTE  wReserved;
    } OSVERSIONINFOEX, *POSVERSIONINFOEX, *LPOSVERSIONINFOEX;

    Members

    dwOSVersionInfoSize

    The size of this data structure, in bytes. Set this member to sizeof(OSVERSIONINFOEX).

    dwMajorVersion

    The major version number of the operating system. For more information, see Remarks.

    dwMinorVersion

    The minor version number of the operating system. For more information, see Remarks.

    dwBuildNumber

    The build number of the operating system.

    dwPlatformId

    The operating system platform. This member can be VER_PLATFORM_WIN32_NT (2).

    szCSDVersion

    A null-terminated string, such as "Service Pack 3", that indicates the latest Service Pack installed on the system. If no Service Pack has been installed, the string is empty.

    wServicePackMajor

    The major version number of the latest Service Pack installed on the system. For example, for Service Pack 3, the major version number is 3. If no Service Pack has been installed, the value is zero.

    wServicePackMinor

    The minor version number of the latest Service Pack installed on the system. For example, for Service Pack 3, the minor version number is 0.

    wSuiteMask

    A bit mask that identifies the product suites available on the system. This member can be a combination of the following values.

    ValueMeaning
    VER_SUITE_BACKOFFICE
    0x00000004

    Microsoft BackOffice components are installed.

    VER_SUITE_BLADE
    0x00000400

    Windows Server 2003, Web Edition is installed.

    VER_SUITE_COMPUTE_SERVER
    0x00004000

    Windows Server 2003, Compute Cluster Edition is installed.

    VER_SUITE_DATACENTER
    0x00000080

    Windows Server 2008 Datacenter, Windows Server 2003, Datacenter Edition, or Windows 2000 Datacenter Server is installed.

    VER_SUITE_ENTERPRISE
    0x00000002

    Windows Server 2008 Enterprise, Windows Server 2003, Enterprise Edition, or Windows 2000 Advanced Server is installed. Refer to the Remarks section for more information about this bit flag.

    VER_SUITE_EMBEDDEDNT
    0x00000040

    Windows XP Embedded is installed.

    VER_SUITE_PERSONAL
    0x00000200

    Windows Vista Home Premium, Windows Vista Home Basic, or Windows XP Home Edition is installed.

    VER_SUITE_SINGLEUSERTS
    0x00000100

    Remote Desktop is supported, but only one interactive session is supported. This value is set unless the system is running in application server mode.

    VER_SUITE_SMALLBUSINESS
    0x00000001

    Microsoft Small Business Server was once installed on the system, but may have been upgraded to another version of Windows. Refer to the Remarks section for more information about this bit flag.

    VER_SUITE_SMALLBUSINESS_RESTRICTED
    0x00000020

    Microsoft Small Business Server is installed with the restrictive client license in force. Refer to the Remarks section for more information about this bit flag.

    VER_SUITE_STORAGE_SERVER
    0x00002000

    Windows Storage Server 2003 R2 or Windows Storage Server 2003is installed.

    VER_SUITE_TERMINAL
    0x00000010

    Terminal Services is installed. This value is always set.

    If VER_SUITE_TERMINAL is set but VER_SUITE_SINGLEUSERTS is not set, the system is running in application server mode.

    VER_SUITE_WH_SERVER
    0x00008000

    Windows Home Server is installed.

     

    wProductType

    Any additional information about the system. This member can be one of the following values.

    ValueMeaning
    VER_NT_DOMAIN_CONTROLLER
    0x0000002

    The system is a domain controller and the operating system is Windows Server 2012 , Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, or Windows 2000 Server.

    VER_NT_SERVER
    0x0000003

    The operating system is Windows Server 2012, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, or Windows 2000 Server.

    Note that a server that is also a domain controller is reported as VER_NT_DOMAIN_CONTROLLER, not VER_NT_SERVER.

    VER_NT_WORKSTATION
    0x0000001

    The operating system is Windows 8, Windows 7, Windows Vista, Windows XP Professional, Windows XP Home Edition, or Windows 2000 Professional.

     

    wReserved

    Reserved for future use.

    Remarks

    Relying on version information is not the best way to test for a feature. Instead, refer to the documentation for the feature of interest. For more information on common techniques for feature detection, see Operating System Version.

    If you must require a particular operating system, be sure to use it as a minimum supported version, rather than design the test for the one operating system. This way, your detection code will continue to work on future versions of Windows.

    The following table summarizes the values returned by supported versions of Windows. Use the information in the Other column to distinguish between operating systems with identical version numbers.

    Operating systemVersion numberdwMajorVersiondwMinorVersionOther
    Windows 8 6.2 6 2 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
    Windows Server 2012 6.2 6 2 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
    Windows 7 6.1 6 1 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
    Windows Server 2008 R2 6.1 6 1 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
    Windows Server 2008 6.0 6 0 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
    Windows Vista 6.0 6 0 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
    Windows Server 2003 R2 5.2 5 2 GetSystemMetrics(SM_SERVERR2) != 0
    Windows Home Server 5.2 5 2 OSVERSIONINFOEX.wSuiteMask & VER_SUITE_WH_SERVER
    Windows Server 2003 5.2 5 2 GetSystemMetrics(SM_SERVERR2) == 0
    Windows XP Professional x64 Edition 5.2 5 2 (OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION) && (SYSTEM_INFO.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64)
    Windows XP 5.1 5 1 Not applicable
    Windows 2000 5.0 5 0 Not applicable

     

    You should not rely upon only the VER_SUITE_SMALLBUSINESS flag to determine whether Small Business Server has been installed on the system, as both this flag and the VER_SUITE_SMALLBUSINESS_RESTRICTED flag are set when this product suite is installed. If you upgrade this installation to Windows Server, Standard Edition, theVER_SUITE_SMALLBUSINESS_RESTRICTED flag will be cleared—however, the VER_SUITE_SMALLBUSINESS flag will remain set. In this case, this indicates that Small Business Server was once installed on this system. If this installation is further upgraded to Windows Server, Enterprise Edition, the VER_SUITE_SMALLBUSINESS flag will remain set.

    If compatibility mode is in effect, the OSVERSIONINFOEX structure contains information about the operating system that is selected for application compatibility.

    To determine whether a Win32-based application is running on WOW64, call the IsWow64Process function. To determine whether the system is running a 64-bit version of Windows, call the GetNativeSystemInfo function.

    The GetSystemMetrics function provides the following additional information about the current operating system.

    ProductSetting
    Windows Server 2003 R2 SM_SERVERR2
    Windows XP Media Center Edition SM_MEDIACENTER
    Windows XP Starter Edition SM_STARTER
    Windows XP Tablet PC Edition SM_TABLETPC

     

    Examples

    For an example, see Getting the System Version.

    Requirements

    Minimum supported client

    Windows 2000 Professional [desktop apps only]

    Minimum supported server

    Windows 2000 Server [desktop apps only]

    Header

    Winnt.h (include Windows.h)

    Unicode and ANSI names

    OSVERSIONINFOEXW (Unicode) and OSVERSIONINFOEXA (ANSI)

    See also

    GetVersionEx
    IsWow64Process
    OSVERSIONINFO
    VerifyVersionInfo

     

  • 相关阅读:
    小程序行内点击事件冲突解决
    小程序带参返回刷新主页面
    小程序时间选择器(精确到秒)
    Bootstrap-Table事件和方法
    JS 解决txt文件直接打开而不是下载
    Bootstrap-Table进阶篇
    Bootstrap-Table入门篇
    Angular+SSM+Ajax的简单购物车实例
    Angular实现简单购物车
    K3BOS单据获取单据体行数
  • 原文地址:https://www.cnblogs.com/lzlsky/p/2768379.html
Copyright © 2011-2022 走看看