OSVERSIONINFOW 结构 (winnt.h)

包含操作系统版本信息。 这些信息包括主要版本号和次要版本号、内部版本号、平台标识符和有关操作系统的描述性文本。 此结构与 GetVersionEx 函数一起使用。

若要获取其他版本信息,请改用 GetVersionExOSVERSIONINFOEX 结构。

语法

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

操作系统平台。 此成员可以是以下值。

价值 意义
VER_PLATFORM_WIN32_NT
2
操作系统是 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)

另请参阅

OSVERSIONINFOEX

版本帮助程序 API