OSVERSIONINFOW 結構 (winnt.h)
包含作業系統版本資訊。 此資訊包括主要和次要版本號碼、組建編號、平臺標識元,以及操作系統的描述性文字。 此結構會與 getVersionEx 函式
若要取得其他版本資訊,請改用 GetVersionExOSVERSIONINFOEX 結構。
語法
typedef struct _OSVERSIONINFOW {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
WCHAR szCSDVersion[128];
} OSVERSIONINFOW, *POSVERSIONINFOW, *LPOSVERSIONINFOW, RTL_OSVERSIONINFOW, *PRTL_OSVERSIONINFOW;
成員
dwOSVersionInfoSize
這個數據結構的大小,以位元組為單位。 將此成員設定為 sizeof(OSVERSIONINFO)
。
dwMajorVersion
操作系統的主要版本號碼。 如需詳細資訊,請參閱。
dwMinorVersion
操作系統的次要版本號碼。 如需詳細資訊,請參閱。
dwBuildNumber
操作系統的組建編號。
dwPlatformId
操作系統平臺。 這個成員可以是下列值。
價值 | 意義 |
---|---|
|
操作系統為 Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP 或 Windows 2000。 |
szCSDVersion[128]
以 Null 結尾的字串,例如 「Service Pack 3」,表示系統上已安裝的最新 Service Pack。 如果未安裝 Service Pack,字串會是空的。
言論
依賴版本資訊並不是測試功能的最佳方式。 請改為參閱相關功能的檔。 如需功能偵測常見技術的詳細資訊,請參閱 操作系統版本。
如果您必須要求特定的作業系統,請務必將其作為最低支援的版本使用,而不是設計一個操作系統的測試。 如此一來,您的偵測程式代碼將會繼續處理未來的 Windows 版本。
下表摘要說明支援的 Windows 版本所傳回的值。 使用標示為「其他」的數據行中的資訊,區分具有相同版本號碼的操作系統。
操作系統 | 版本號碼 | dwMajorVersion | dwMinorVersion | 其他 |
---|---|---|---|---|
Windows 10 | 10.0* | 10 | 0 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Windows Server 2016 | 10.0* | 10 | 0 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
Windows 8.1 | 6.3* | 6 | 3 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Windows Server 2012 R2 | 6.3* | 6 | 3 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
Windows 8 | 6.2 | 6 | 2 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Windows Server 2012 | 6.2 | 6 | 2 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
Windows 7 | 6.1 | 6 | 1 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Windows Server 2008 R2 | 6.1 | 6 | 1 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
Windows Server 2008 | 6.0 | 6 | 0 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
Windows Vista | 6.0 | 6 | 0 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Windows Server 2003 R2 | 5.2 | 5 | 2 | GetSystemMetrics(SM_SERVERR2) != 0 |
Windows Server 2003 | 5.2 | 5 | 2 | GetSystemMetrics(SM_SERVERR2) == 0 |
Windows XP | 5.1 | 5 | 1 | 不適用 |
Windows 2000 | 5.0 | 5 | 0 | 不適用 |
* 針對已針對 Windows 8.1 或 Windows 10 顯示的應用程式。 未針對 Windows 8.1 或 Windows 10 顯示的應用程式會傳回 Windows 8 OS 版本值 (6.2)。 若要顯示適用於 Windows 8.1 或 Windows 10 的應用程式,請參閱 以 Windows的應用程式為目標。 |
例子
如需範例,請參閱 取得系統版本。
注意
winnt.h 標頭會將 OSVERSIONINFO 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
支援的最低伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
標頭 | winnt.h (包括 Windows.h) |