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。 此結構會與 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 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) |