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 版本。
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小型企业服务器曾经安装在系统上,但可能已升级到另一版本的 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 Home Server。

不应只依赖 VER_SUITE_SMALLBUSINESS 标志来确定当前是否安装了小型企业服务器。 安装此产品套件时,将同时设置此标志和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 版本(请参阅注释) 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 版本上运行。 因此,32 位内核模式驱动程序可以安全地省略此版本的 Windows 检查。

要求

要求 价值
标头 wdm.h (include Ntddk.h)

另请参阅

RTL_OSVERSIONINFOW

RtlGetVersion

RtlVerifyVersionInfo