OSVERSIONINFOEXA 構造体 (winnt.h)
オペレーティング システムのバージョン情報が含まれています。 この情報には、メジャー バージョン番号とマイナー バージョン番号、ビルド番号、プラットフォーム識別子、およびシステムにインストールされている製品スイートと最新の Service Pack に関する情報が含まれます。 この構造体は、
構文
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 フラグは設定されたままになります。
互換モードが有効な場合、
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 タブレット PC エディション | SM_TABLETPC |
例
例については、「システム バージョンの取得」を参照してください。
手記
winnt.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして OSVERSIONINFOEX を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows 2000 Server [デスクトップ アプリのみ] |
ヘッダー | winnt.h (Windows.h を含む) |
関連項目
IsWow64Process の
OSVERSIONINFO を