OSVERSIONINFOEXA 構造体 (winnt.h)
オペレーティング システムのバージョン情報が含まれています。 この情報には、メジャー バージョン番号とマイナー バージョン番号、ビルド番号、プラットフォーム識別子、およびシステムにインストールされている製品スイートと最新の Service Pack に関する情報が含まれます。 この構造体は、 GetVersionEx 関数と VerifyVersionInfo 関数で使用されます。
構文
typedef struct _OSVERSIONINFOEXA {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
CHAR szCSDVersion[128];
WORD wServicePackMajor;
WORD wServicePackMinor;
WORD wSuiteMask;
BYTE wProductType;
BYTE wReserved;
} OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA;
メンバー
dwOSVersionInfoSize
このデータ構造のサイズ (バイト単位)。 このメンバーを に設定します sizeof(OSVERSIONINFOEX)
。
dwMajorVersion
オペレーティング システムのメジャー バージョン番号。 詳細については、「解説」を参照してください。
dwMinorVersion
オペレーティング システムのマイナー バージョン番号。 詳細については、「解説」を参照してください。
dwBuildNumber
オペレーティング システムのビルド番号。
dwPlatformId
オペレーティング システム プラットフォーム。 このメンバーは VER_PLATFORM_WIN32_NT (2) にすることができます。
szCSDVersion[128]
システムにインストールされている最新の Service Pack を示す null で終わる文字列 ("Service Pack 3" など)。 Service Pack がインストールされていない場合、文字列は空です。
wServicePackMajor
システムにインストールされている最新の Service Pack のメジャー バージョン番号。 たとえば、Service Pack 3 の場合、メジャー バージョン番号は 3 です。 Service Pack がインストールされていない場合、値は 0 です。
wServicePackMinor
システムにインストールされている最新の Service Pack のマイナー バージョン番号。 たとえば、Service Pack 3 の場合、マイナー バージョン番号は 0 です。
wSuiteMask
システムで使用可能な製品スイートを識別するビット マスク。 このメンバーには、次の値の組み合わせを指定できます。
wProductType
システムに関する追加情報。 このメンバーには、次のいずれかの値を指定できます。
wReserved
将来利用するために予約されています。
注釈
バージョン情報に依存することは、機能をテストする最善の方法ではありません。 代わりに、関心のある機能については、ドキュメントを参照してください。 機能検出の一般的な手法の詳細については、「 オペレーティング システムのバージョン」を参照してください。
特定のオペレーティング システムが必要な場合は、1 つのオペレーティング システムのテストを設計するのではなく、サポートされている最小バージョンとして使用してください。 これにより、検出コードは将来のバージョンの Windows で引き続き機能します。
次の表は、サポートされているバージョンの Windows によって返される値をまとめたものです。 "Other" というラベルの列の情報を使用して、同じバージョン番号を持つオペレーティング システムを区別します。
オペレーティング システム | バージョン番号 | 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 Home Server | 5.2 | 5 | 2 | OSVERSIONINFOEX.wSuiteMask & VER_SUITE_WH_SERVER |
Windows Server 2003 | 5.2 | 5 | 2 | GetSystemMetrics(SM_SERVERR2) == 0 |
Windows XP Professional x64 Edition | 5.2 | 5 | 2 | (OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION) && (SYSTEM_INFO.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64) |
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 用アプリケーションのターゲット設定」を参照してください。 |
この製品スイートのインストール時にこのフラグと VER_SUITE_SMALLBUSINESS_RESTRICTED フラグの両方が設定されるため、システムに Small Business Server がインストールされているかどうかを判断するには、 VER_SUITE_SMALLBUSINESS フラグだけに依存しないでください。 このインストールを Windows Server Standard Edition にアップグレードすると、 VER_SUITE_SMALLBUSINESS_RESTRICTED フラグはクリアされますが、 VER_SUITE_SMALLBUSINESS フラグ は設定されたままになります。 この場合、これは、Small Business Server がこのシステムに一度インストールされたことを示します。 このインストールを Windows Server Enterprise Editionにさらにアップグレードした場合、VER_SUITE_SMALLBUSINESS フラグは設定されたままになります。
互換モードが有効な場合、 OSVERSIONINFOEX 構造体には 、アプリケーションの互換性のために選択されたオペレーティング システムに関する情報が含まれます。
Win32 ベースのアプリケーションが WOW64 で実行されているかどうかを確認するには、 IsWow64Process 関数を呼び出します。 システムが 64 ビット バージョンの Windows を実行しているかどうかを確認するには、 GetNativeSystemInfo 関数を呼び出します。
GetSystemMetrics 関数は、現在のオペレーティング システムに関する次の追加情報を提供します。
製品 | 設定 |
---|---|
Windows Server 2003 R2 | SM_SERVERR2 |
Windows XP Media Center Edition | SM_MEDIACENTER |
Windows XP Starter Edition | SM_STARTER |
Windows XP Tablet PC Edition | SM_TABLETPC |
例
例については、「 システム バージョンの取得」を参照してください。
注意
winnt.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして OSVERSIONINFOEX を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
Header | winnt.h (Windows.h を含む) |