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。 此結構會與 RtlGetVersion 和 RtlVerifyVersionInfo 例程搭配使用。
依賴版本資訊不一定是測試功能是否可用的最佳方式。 如需指引,請參閱您感興趣的功能檔。
可能的話,請在驅動程式中設計版本偵測程式代碼,讓驅動程式能夠在未來的 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) |