共用方式為


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 Home Premium、Windows Vista Home Basic 或 Windows XP Home Edition。
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 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 Edition 上執行。 因此,32 位內核模式驅動程式可以安全地省略此版本的 Windows 檢查。

要求

要求 價值
標頭 wdm.h (包括 Ntddk.h)

另請參閱

RTL_OSVERSIONINFOW

RtlGetVersion

RtlVerifyVersionInfo