オペレーティングシステムのバージョン情報が格納されます。この構造体は GetVersionEx 関数で使用されます。
typedef struct _OSVERSIONINFO {
DWORD dwOSVersionInfoSize; // 構造体サイズ(=148)
DWORD dwMajorVersion; // メジャーバージョン番号
DWORD dwMinorVersion; // マイナーバージョン番号
DWORD dwBuildNumber; // ビルドナンバー
DWORD dwPlatformId; // プラットフォームID
TCHAR szCSDVersion[128]; // 追加情報
} OSVERSIONINFO, *POSVERSIONINFO, *LPOSVERSIONINFO;
構造体のサイズを指定します。 ANSI 版では 148 を指定します。
オペレーティングシステムのメジャーバージョン番号が格納されます。オペレーティングシステムのメジャーバージョン番号は以下のようになります。
| オペレーティングシステム | メジャーバージョン番号 |
|---|---|
| Windows 95 / 98 / Me | 4 |
| Windows NT 3.51 | 3 |
| Windows NT 4.0 | 4 |
| Windows 2000 / XP / Server 2003 | 5 |
オペレーティングシステムのマイナーバージョン番号が格納されます。オペレーティングシステムのマイナーバージョン番号は以下のようになります。
| オペレーティングシステム | マイナーバージョン番号 |
|---|---|
| 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 NT/2000/XP: オペレーティングシステムのビルドナンバーが格納されます。
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 |
Windows NT/2000/XP: サービスパックがインストールされている場合は、その情報を示す文字列が格納されます(例:“Service Pack 3”)。それ以外の場合は空文字列になります。
Windows 95/98/Me: オペレーティングシステムの追加バージョン情報を示す文字列が格納されます。例えば、 Windows 95 OSR 2 では " C" が、 Windows 98 Second Edition では " A" が格納されます。
オペレーティングシステムの分類は以下のようになります。
| プラットフォーム ID | Major | Minor | バージョンテキスト | オペレーティングシステム |
|---|---|---|---|---|
| VER_PLATFORM_WIN32_NT | 3 | - | - | Windows 3.x |
| 4 | 0 | - | Windows 4.0 | |
| 5 | 0 | - | Windows 2000 | |
| 1 | - | Windows XP | ||
| 2 | - | Windows Server 2003 | ||
| VER_PLATFORM_WIN32_WINDOWS | 4 | 0 | - | Windows 95 |
| " B" または " 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 | |||