次の方法で共有


OSVERSIONINFOA 構造体 (winnt.h)

オペレーティング システムのバージョン情報が含まれています。 この情報には、メジャー バージョン番号とマイナー バージョン番号、ビルド番号、プラットフォーム識別子、オペレーティング システムに関する説明テキストが含まれます。 この構造体は、GetVersionEx 関数と共に使用されます。

追加のバージョン情報を取得するには、代わりに OSVERSIONINFOEX 構造体 GetVersionEx を使用します。

構文

typedef struct _OSVERSIONINFOA {
  DWORD dwOSVersionInfoSize;
  DWORD dwMajorVersion;
  DWORD dwMinorVersion;
  DWORD dwBuildNumber;
  DWORD dwPlatformId;
  CHAR  szCSDVersion[128];
} OSVERSIONINFOA, *POSVERSIONINFOA, *LPOSVERSIONINFOA;

メンバーズ

dwOSVersionInfoSize

このデータ構造のサイズ (バイト単位)。 このメンバーを sizeof(OSVERSIONINFO)に設定します。

dwMajorVersion

オペレーティング システムのメジャー バージョン番号。 詳細については、「解説」を参照してください。

dwMinorVersion

オペレーティング システムのマイナー バージョン番号。 詳細については、「解説」を参照してください。

dwBuildNumber

オペレーティング システムのビルド番号。

dwPlatformId

オペレーティング システム プラットフォーム。 このメンバーには、次の値を指定できます。

価値 意味
VER_PLATFORM_WIN32_NT
2
オペレーティング システムは、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP、または Windows 2000 です。

szCSDVersion[128]

システムにインストールされている最新の Service Pack を示す null で終わる文字列 ("Service Pack 3" など)。 Service Pack がインストールされていない場合、文字列は空です。

備考

バージョン情報に依存することは、機能をテストする最適な方法ではありません。 代わりに、関心のある機能についてはドキュメントを参照してください。 機能検出の一般的な手法の詳細については、「オペレーティング システムのバージョン」を参照してください。

特定のオペレーティング システムが必要な場合は、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 Server 2003 5.2 5 2 GetSystemMetrics(SM_SERVERR2) == 0
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のアプリケーションを対象とする 」を参照してください。
 

例については、「システム バージョンの取得」を参照してください。

手記

winnt.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして OSVERSIONINFO を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ヘッダー winnt.h (Windows.h を含む)

関連項目

OSVERSIONINFOEX の

バージョン ヘルパー API