OSVERSIONINFOA 結構 (winnt.h)
包含作業系統版本資訊。 此資訊包括主要和次要版本號碼、組建編號、平臺標識元,以及操作系統的相關描述性文字。 此結構會與 GetVersionEx 函式搭配使用。
若要取得其他版本資訊,請改用 OSVERSIONINFOEX 結構搭配 GetVersionEx 。
語法
typedef struct _OSVERSIONINFOA {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
CHAR szCSDVersion[128];
} OSVERSIONINFOA, *POSVERSIONINFOA, *LPOSVERSIONINFOA;
成員
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 顯示的應用程式會傳回 (6.2) Windows 8 OS 版本值。 若要為應用程式顯示 Windows 8.1 或 Windows 10,請參閱針對 Windows 將應用程式設為目標。 |
範例
如需範例,請參閱 取得系統版本。
注意
winnt.h 標頭會將 OSVERSIONINFO 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
標頭 | winnt.h (包括 Windows.h) |