OSVERSIONINFOA 構造体 (winnt.h)

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

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

構文

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 を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

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

こちらもご覧ください

OSVERSIONINFOEX

バージョン ヘルパー API