オペレーティングシステムのバージョン情報が格納されます。この構造体はGetVersionEx関数で使用されます。
typedef struct _OSVERSIONINFO {
DWORD dwOSVersionInfoSize; // structure size
DWORD dwMajorVersion; // major version
DWORD dwMinorVersion; // minor version
DWORD dwBuildNumber; // build number
DWORD dwPlatformId; // platform ID
TCHAR szCSDVersion[128]; // additional information
} OSVERSIONINFO, *POSVERSIONINFO, *LPOSVERSIONINFO;
OSVERSIONINFO構造体のサイズを指定します。ANSI版では148になります。
オペレーティングシステムのメジャーバージョン番号が格納されます。オペレーティングシステムのメジャーバージョン番号は以下のようになります。
| オペレーティングシステム | メジャーバージョン番号 |
|---|---|
| Windows 95 / 98 / Me | 4 |
| Windows NT 3.51 | 3 |
| Windows NT 4.0 | 4 |
| Windows 2000 / XP / Server 2003 | 5 |
| Windows Vista / Server 2008 | 6 |
オペレーティングシステムのマイナーバージョン番号が格納されます。オペレーティングシステムのマイナーバージョン番号は以下のようになります。
| オペレーティングシステム | マイナーバージョン番号 |
|---|---|
| Windows 95 | 0 |
| Windows 98 | 10 |
| Windows Me | 90 |
| Windows NT 3.51 | 51 |
| Windows NT 4.0 | 0 |
| Windows 2000 | 0 |
| Windows XP | 1 |
| Windows Server 2003 | 2 |
| Windows Server 2003 R2 | 2 |
| Windows Server XP Professional x64 Edition | 2 |
| Windows Server Vista | 0 |
| Windows Server 2008 | 0 |
オペレーティングシステムのビルドナンバーが格納されます。
Windows 95/98/Me: 下位ワードにはオペレーティングシステムのビルドナンバーが格納されます。上位ワードにはメジャーバージョン番号およびマイナーバージョン番号が格納されます。
オペレーティングシステムのプラットフォームを識別する値が格納されます。次のいずれかの値になります。
| 値 | 意味 |
|---|---|
| 0 (VER_PLATFORM_WIN32s) | Windows 3.1上で実行するWin32s |
| 1 (VER_PLATFORM_WIN32_WINDOWS) | Windows 9xベースのWin32 |
| 2 (VER_PLATFORM_WIN32_NT) | Windows NTベースのWin32 |
サービスパックがインストールされている場合は、その情報を示す文字列が格納されます(例:“Service Pack 3”)。それ以外の場合は空文字列になります。
Windows 95/98/Me: オペレーティングシステムの追加バージョン情報を示す文字列が格納されます。例えば、Windows 95 OSR2では" C"が、Windows 98 Second Editionでは" A"が格納されます。
32ビットWindowsオペレーティングシステムの分類は以下のようになります。
| プラットフォームID | Major | Minor | バージョンテキスト | オペレーティングシステム |
|---|---|---|---|---|
| VER_PLATFORM_WIN32_NT | 3 | - | - | Windows NT 3.x |
| 4 | 0 | - | Windows NT 4.0 | |
| 5 | 0 | - | Windows 2000 | |
| 1 | - | Windows XP | ||
| 2 | - | Windows Server 2003 または Windows Server 2003 R2 | ||
| 6 | 0 | - | Windows Vista または Windows Server 2008 | |
| VER_PLATFORM_WIN32_WINDOWS | 4 | 0 | - | Windows 95 |
| " B" or " C" | Windows 95 OSR2 | |||
| 10 | - | Windows 98 | ||
| " A" | Windows 98 SE | |||
| 90 | - | Windows Me |
Windows 95 以降 / Windows NT 3.5 以降
| HSP 変数 | メンバ | ||
|---|---|---|---|
| メンバ名 | オフセット | サイズ | |
| osver(0) | dwOSVersionInfoSize ( = 148 ) | 0 | 4 |
| osver(1) | dwMajorVersion | 4 | 4 |
| osver(2) | dwMinorVersion | 8 | 4 |
| osver(3) | dwBuildNumber | 12 | 4 |
| osver(4) | dwPlatformId | 16 | 4 |
| osver(5) | szCSDVersion | 20 | 128 |
| … | |||
| osver(36) | |||