OSVERSIONINFOW 结构 (winnt.h)
包含操作系统版本信息。 这些信息包括主要版本号和次要版本号、内部版本号、平台标识符和有关操作系统的描述性文本。 此结构与 GetVersionEx 函数一起使用。
若要获取其他版本信息,请改为将 OSVERSIONINFOEX 结构与 GetVersionEx 配合使用 。
语法
typedef struct _OSVERSIONINFOW {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
WCHAR szCSDVersion[128];
} OSVERSIONINFOW, *POSVERSIONINFOW, *LPOSVERSIONINFOW, RTL_OSVERSIONINFOW, *PRTL_OSVERSIONINFOW;
成员
dwOSVersionInfoSize
此数据结构的大小(以字节为单位)。 将此成员设置为 sizeof(OSVERSIONINFO)
。
dwMajorVersion
操作系统的主版本号。 有关详细信息,请参阅“备注”。
dwMinorVersion
操作系统的次要版本号。 有关详细信息,请参阅“备注”。
dwBuildNumber
操作系统的内部版本号。
dwPlatformId
操作系统平台。 此成员可以是以下值。
值 | 含义 |
---|---|
|
操作系统是 Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP 或 Windows 2000。 |
szCSDVersion[128]
一个以 null 结尾的字符串,例如“Service Pack 3”,指示系统上安装的最新 Service Pack。 如果未安装 Service Pack,则字符串为空。
注解
依赖版本信息不是测试功能的最佳方式。 有关相关功能,请参阅文档。 有关功能检测的常见技术的详细信息,请参阅 操作系统版本。
如果必须需要特定的操作系统,请确保将其用作最低支持版本,而不是为一个操作系统设计测试。 这样,检测代码将继续在 Windows 的未来版本上运行。
下表汇总了受支持的 Windows 版本返回的值。 使用标记为“其他”的列中的信息来区分版本号相同的操作系统。
操作系统 | 版本号 | dwMajorVersion | dwMinorVersion | 其他 |
---|---|---|---|---|
Windows 10 | 10.0* | 10 | 0 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Windows Server 2016 | 10.0* | 10 | 0 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
Windows 8.1 | 6.3* | 6 | 3 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Windows Server 2012 R2 | 6.3* | 6 | 3 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
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 Server 2003 | 5.2 | 5 | 2 | GetSystemMetrics (SM_SERVERR2) == 0 |
Windows XP | 5.1 | 5 | 1 | 不适用 |
Windows 2000 | 5.0 | 5 | 0 | 不适用 |
*对于已针对 Windows 8.1 或 Windows 10 进行清单的应用程序。 未针对Windows 8.1或Windows 10显示的应用程序将返回Windows 8 OS 版本值 (6.2) 。 若要为Windows 8.1或Windows 10显示应用程序,请参阅面向 Windows 的应用程序。 |
示例
有关示例,请参阅 获取系统版本。
注意
winnt.h 标头将 OSVERSIONINFO 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
标头 | winnt.h (包括 Windows.h) |