OSVERSIONINFO

オペレーティングシステムのバージョン情報が格納されます。この構造体は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;

メンバ

dwOSVersionInfoSize

OSVERSIONINFO構造体のサイズを指定します。ANSI版では148になります。

dwMajorVersion

オペレーティングシステムのメジャーバージョン番号が格納されます。オペレーティングシステムのメジャーバージョン番号は以下のようになります。

オペレーティングシステム メジャーバージョン番号
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
dwMinorVersion

オペレーティングシステムのマイナーバージョン番号が格納されます。オペレーティングシステムのマイナーバージョン番号は以下のようになります。

オペレーティングシステム マイナーバージョン番号
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
dwBuildNumber

オペレーティングシステムのビルドナンバーが格納されます。

Windows 95/98/Me: 下位ワードにはオペレーティングシステムのビルドナンバーが格納されます。上位ワードにはメジャーバージョン番号およびマイナーバージョン番号が格納されます。

dwPlatformId

オペレーティングシステムのプラットフォームを識別する値が格納されます。次のいずれかの値になります。

意味
0 (VER_PLATFORM_WIN32s) Windows 3.1上で実行するWin32s
1 (VER_PLATFORM_WIN32_WINDOWS) Windows 9xベースのWin32
2 (VER_PLATFORM_WIN32_NT) Windows NTベースのWin32
szCSDVersion

サービスパックがインストールされている場合は、その情報を示す文字列が格納されます(例:“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 以降

変数との対応(ANSI版の場合)

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)