OSVERSIONINFOW 結構 (winnt.h)

包含作業系統版本資訊。 此資訊包括主要和次要版本號碼、組建編號、平臺標識元,以及操作系統的描述性文字。 這個結構會與 GetVersionEx 函式搭配使用。

若要取得其他版本資訊,請改用 OSVERSIONINFOEX 結構搭配 GetVersionEx

語法

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

操作系統平臺。 這個成員可以是下列值。

意義
VER_PLATFORM_WIN32_NT
2
操作系統為 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)

另請參閱

OSVERSIONINFOEX

版本協助程式 API