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,主要版本號碼是五個。 如需詳細資訊,請參閱中的表格。

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,主要版本號碼是三個。 如果未安裝 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 企業版、Windows Server 2003、Enterprise Edition 或 Windows 2000 進階伺服器。
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 旗標來判斷是否目前已安裝 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 檢查。

規格需求

需求
標頭 wdm.h (包含 Ntddk.h)

另請參閱

RTL_OSVERSIONINFOW

RtlGetVersion

RtlVerifyVersionInfo