osVERSIONINFOEXW 结构 (wdm.h)

RTL_OSVERSIONINFOEXW 结构包含操作系统版本信息。

语法

typedef struct _OSVERSIONINFOEXW {
  ULONG  dwOSVersionInfoSize;
  ULONG  dwMajorVersion;
  ULONG  dwMinorVersion;
  ULONG  dwBuildNumber;
  ULONG  dwPlatformId;
  WCHAR  szCSDVersion[128];
  USHORT wServicePackMajor;
  USHORT wServicePackMinor;
  USHORT wSuiteMask;
  UCHAR  wProductType;
  UCHAR  wReserved;
} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW, RTL_OSVERSIONINFOEXW, *PRTL_OSVERSIONINFOEXW;

成员

dwOSVersionInfoSize

RTL_OSVERSIONINFOEXW结构的大小(以字节为单位)。 必须先设置此成员,然后才能将 结构与 RtlGetVersion 一起使用。

dwMajorVersion

操作系统的主版本号。 例如,对于 Windows 2000,主版本号为 5。 有关详细信息,请参阅备注中的表。

dwMinorVersion

操作系统的次要版本号。 例如,对于 Windows 2000,次要版本号为零。 有关详细信息,请参阅备注中的表。

dwBuildNumber

操作系统的内部版本号。

dwPlatformId

操作系统平台。 对于基于 NT 的操作系统上的 Win32,RtlGetVersion 返回值VER_PLATFORM_WIN32_NT。

szCSDVersion[128]

Service-pack 版本字符串。 此成员包含以 null 结尾的字符串,例如“Service Pack 3”,指示系统上安装的最新 Service Pack。 如果未安装 Service Pack, 则 RtlGetVersion 可能不会初始化此字符串。 在调用 RtlGetVersion 之前,将 szCSDVersion 初始化为零 (空字符串) 。

wServicePackMajor

系统上安装的最新 Service Pack 的主版本号。 例如,对于 Service Pack 3,主版本号为 3。 如果未安装 Service Pack,则值为零。

wServicePackMinor

系统上安装的最新 Service Pack 的次要版本号。 例如,对于 Service Pack 3,次要版本号为零。

wSuiteMask

系统上可用的产品套件。 此成员设置为零或设置为以下一个或多个值的按位 OR。

含义
VER_SUITE_BACKOFFICE 已安装 Microsoft BackOffice 组件。
VER_SUITE_BLADE 已安装 Windows Server 2003 Web Edition。
VER_SUITE_COMPUTE_SERVER 已安装 Windows Server 2003 计算群集版本。
VER_SUITE_DATACENTER 已安装 Windows Server 2008 Datacenter、Windows Server 2003、Datacenter Edition 或 Windows 2000 Datacenter Server。
VER_SUITE_ENTERPRISE 已安装 Windows Server 2008 Enterprise、Windows Server 2003、Enterprise Edition 或 Windows 2000 Advanced Server。
VER_SUITE_EMBEDDEDNT 已安装 Windows XP Embedded。
VER_SUITE_PERSONAL 已安装 Windows Vista 家庭高级版、Windows Vista 家庭普通版 或 Windows XP 家庭版。
VER_SUITE_SINGLEUSERTS 支持远程桌面,但仅支持一个交互式会话。 除非系统在应用程序服务器模式下运行,否则将设置此值。
VER_SUITE_SMALLBUSINESS (请参阅注释) Microsoft Small Business Server 曾经安装在系统上,但可能已升级到另一个版本的 Windows。 有关此标志位的详细信息,请参阅以下“备注”部分。
VER_SUITE_SMALLBUSINESS_RESTRICTED Microsoft Small Business Server 安装时附带了限制性客户端许可证。 有关此标志位的详细信息,请参阅以下“备注”部分。
VER_SUITE_STORAGE_SERVER 已安装 Windows Storage Server 2003 R2 或 Windows Storage Server 2003。
VER_SUITE_TERMINAL 已安装终端服务。 始终设置此值。 如果设置了VER_SUITE_TERMINAL但未设置VER_SUITE_SINGLEUSERTS,则操作系统在应用程序服务器模式下运行。
VER_SUITE_WH_SERVER 已安装 Windows 主服务器。

不应仅依赖VER_SUITE_SMALLBUSINESS标志来确定当前是否安装了 Small Business Server。 此标志和VER_SUITE_SMALLBUSINESS_RESTRICTED标志都是在安装此产品套件时设置的。 如果将此安装升级到 Windows Server Standard Edition,则会清除VER_SUITE_SMALLBUSINESS_RESTRICTED标志,但仍设置VER_SUITE_SMALLBUSINESS标志,在本例中,指示以前在此系统上安装了 Small Business Server。 如果此安装进一步升级到 Windows Server,Enterprise Edition,则仍设置VER_SUITE_SMALLBUSINESS标志。

wProductType

产品类型。 此成员包含有关系统的其他信息。 此成员可以是以下值之一:

含义
VER_NT_WORKSTATION Windows 2000 或更高版本专业版
VER_NT_DOMAIN_CONTROLLER Windows 2000 或更高版本的域控制器
VER_NT_SERVER Windows 2000 或更高版本的服务器

wReserved

保留供将来使用。

注解

此结构中的信息包括主要版本号和次要版本号、内部版本号、平台标识符、已安装的产品套件以及系统上安装的最新 Service Pack。 此结构与 RtlGetVersionRtlVerifyVersionInfo 例程一起使用。

依赖版本信息并不总是测试功能是否可用的最佳方法。 有关指导,请参阅你感兴趣的功能的文档。

如果可能,请在驱动程序中设计版本检测代码,使驱动程序能够在将来的 Windows 版本上运行。 如果驱动程序需要特定的操作系统版本,请确保将此版本视为受支持的最低版本,而不是驱动程序可以运行的唯一版本。

下表汇总了受支持的 Windows 版本返回的版本信息。 使用“其他”列或内部版本号中的信息来区分具有相同版本号的操作系统。

操作系统 版本号 dwMajorVersion dwMinorVersion 其他
Windows 11 10.0 10 0 wProductType == VER_NT_WORKSTATION
Windows Server 2022 10.0 10 0 wProductType != VER_NT_WORKSTATION
Windows Server 2019 10.0 10 0 wProductType != VER_NT_WORKSTATION
Windows 10 (所有版本) 10.0 10 0 wProductType == VER_NT_WORKSTATION
Windows Server 2016 10.0 10 0 wProductType != VER_NT_WORKSTATION
Windows Server 2012 R2 6.3 6 3 wProductType != VER_NT_WORKSTATION
Windows 8.1 6.3 6 3 wProductType == VER_NT_WORKSTATION
Windows 8 6.2 6 2 wProductType == VER_NT_WORKSTATION
Windows Server 2012 6.2 6 2 wProductType != VER_NT_WORKSTATION
Windows 7 6.1 6 1 wProductType == VER_NT_WORKSTATION
Windows Server 2008 R2 6.1 6 1 wProductType != VER_NT_WORKSTATION
Windows Server 2008 6.0 6 0 wProductType != VER_NT_WORKSTATION
Windows Vista 6.0 6 0 wProductType == VER_NT_WORKSTATION
Windows Home Server 5.2 5 2 wSuiteMask == VER_SUITE_WH_SERVER
Windows Server 2003 5.2 5 2 不适用
Windows XP Professional x64 Edition (请参阅注释) 5.2 5 2 wProductType == VER_NT_WORKSTATION
Windows XP 5.1 5 1 不适用
Windows 2000 5.0 5 0 不适用

只有 64 位内核模式驱动程序可以在 Windows XP Professional x64 Edition 上运行。 因此,32 位内核模式驱动程序可以安全地省略此版本的 Windows 检查。

要求

要求
Header wdm.h (包括 Ntddk.h)

另请参阅

RTL_OSVERSIONINFOW

RtlGetVersion

RtlVerifyVersionInfo