OSVERSIONINFOEXW 構造体 (wdm.h)

RTL_OSVERSIONINFOEXW構造体には、オペレーティング システムのバージョン情報が含まれています。

構文

typedef struct _OSVERSIONINFOEXW {
  ULONG  dwOSVersionInfoSize;
  ULONG  dwMajorVersion;
  ULONG  dwMinorVersion;
  ULONG  dwBuildNumber;
  ULONG  dwPlatformId;
  WCHAR  szCSDVersion[128];
  USHORT wServicePackMajor;
  USHORT wServicePackMinor;
  USHORT wSuiteMask;
  UCHAR  wProductType;
  UCHAR  wReserved;
} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW, RTL_OSVERSIONINFOEXW, *PRTL_OSVERSIONINFOEXW;

メンバー

dwOSVersionInfoSize

RTL_OSVERSIONINFOEXW構造体のサイズ (バイト単位)。 このメンバーは、 RtlGetVersion で構造体を使用する前に設定する必要があります。

dwMajorVersion

オペレーティング システムのメジャー バージョン番号。 たとえば、Windows 2000 の場合、メジャー バージョン番号は 5 です。 詳細については、「解説」の表を参照してください。

dwMinorVersion

オペレーティング システムのマイナー バージョン番号。 たとえば、Windows 2000 の場合、マイナー バージョン番号は 0 です。 詳細については、「解説」の表を参照してください。

dwBuildNumber

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

dwPlatformId

オペレーティング システム プラットフォーム。 NT ベースのオペレーティング システム上の Win32 の場合、 RtlGetVersion はVER_PLATFORM_WIN32_NT値を返します。

szCSDVersion[128]

service-pack バージョン文字列。 このメンバーには、システムにインストールされている最新のサービス パックを示す"Service Pack 3" などの null で終わる文字列が含まれています。 Service Pack がインストールされていない場合、 RtlGetVersion によってこの文字列が初期化されない可能性があります。 RtlGetVersion の呼び出しの前に、szCSDVersion を 0 (空の文字列) に初期化します。

wServicePackMajor

システムにインストールされている最新のサービス パックのメジャー バージョン番号。 たとえば、Service Pack 3 の場合、メジャー バージョン番号は 3 です。 Service Pack がインストールされていない場合、値は 0 です。

wServicePackMinor

システムにインストールされている最新のサービス パックのマイナー バージョン番号。 たとえば、Service Pack 3 の場合、マイナー バージョン番号は 0 です。

wSuiteMask

システムで利用可能な製品スイート。 このメンバーは、次の 1 つ以上の値の 0 またはビットごとの OR に設定されます。

意味
VER_SUITE_BACKOFFICE Microsoft BackOffice コンポーネントがインストールされています。
VER_SUITE_BLADE Windows Server 2003 Web Edition がインストールされています。
VER_SUITE_COMPUTE_SERVER Windows Server 2003、Compute Cluster Edition がインストールされています。
VER_SUITE_DATACENTER Windows Server 2008 Datacenter、Windows Server 2003、Datacenter Edition、または Windows 2000 Datacenter Server がインストールされています。
VER_SUITE_ENTERPRISE Windows Server 2008 Enterprise、Windows Server 2003、Enterprise Edition、または Windows 2000 Advanced Server がインストールされています。
VER_SUITE_EMBEDDEDNT Windows XP Embedded がインストールされています。
VER_SUITE_PERSONAL Windows Vista Home Premium、Windows Vista Home Basic、または Windows XP Home Edition がインストールされています。
VER_SUITE_SINGLEUSERTS リモート デスクトップはサポートされていますが、サポートされている対話型セッションは 1 つだけです。 この値は、システムがアプリケーション サーバー モードで実行されていない限り設定されます。
VER_SUITE_SMALLBUSINESS (注を参照) Microsoft Small Business Server は、以前はシステムにインストールされていましたが、別のバージョンの Windows にアップグレードされている可能性があります。 このフラグ ビットの詳細については、次の「解説」セクションを参照してください。
VER_SUITE_SMALLBUSINESS_RESTRICTED Microsoft Small Business Server は、制限の厳しいクライアント ライセンスを適用してインストールされます。 このフラグ ビットの詳細については、次の「解説」セクションを参照してください。
VER_SUITE_STORAGE_SERVER Windows Storage Server 2003 R2 または Windows Storage Server 2003 がインストールされています。
VER_SUITE_TERMINAL ターミナル サービスがインストールされています。 この値は常に設定されます。 VER_SUITE_TERMINALが設定されていても、VER_SUITE_SINGLEUSERTSが設定されていない場合、オペレーティング システムはアプリケーション サーバー モードで実行されます。
VER_SUITE_WH_SERVER Windows Home Server がインストールされています。

Small Business Server が現在インストールされているかどうかを判断するには、VER_SUITE_SMALLBUSINESS フラグのみに依存しないでください。 この製品スイートをインストールすると、このフラグとVER_SUITE_SMALLBUSINESS_RESTRICTED フラグの両方が設定されます。 このインストールを Windows Server Standard Edition にアップグレードすると、VER_SUITE_SMALLBUSINESS_RESTRICTED フラグはクリアされますが、VER_SUITE_SMALLBUSINESS フラグは設定されたままです。この場合は、Small Business Server がこのシステムに以前にインストールされたことを示します。 このインストールをさらに Windows Server にアップグレードした場合、Enterprise Edition、VER_SUITE_SMALLBUSINESS フラグは設定されたままです。

wProductType

製品の種類。 このメンバーには、システムに関する追加情報が含まれています。 このメンバーには、次のいずれかの値を指定できます。

意味
VER_NT_WORKSTATION Windows 2000 以降のプロフェッショナル バージョン
VER_NT_DOMAIN_CONTROLLER Windows 2000 以降のドメイン コントローラー
VER_NT_SERVER Windows 2000 以降のサーバー

wReserved

将来利用するために予約されています。

注釈

この構造体の情報には、メジャー バージョン番号とマイナー バージョン番号、ビルド番号、プラットフォーム識別子、インストールされている製品スイート、およびシステムにインストールされている最新のサービス パックが含まれます。 この構造体は、 RtlGetVersion ルーチンと RtlVerifyVersionInfo ルーチンで使用されます。

バージョン情報に依存することは、機能が使用可能かどうかをテストする最善の方法であるとは限りません。 ガイダンスについては、関心のある機能のドキュメントを参照してください。

可能であれば、ドライバーのバージョン検出コードを設計して、将来のバージョンの Windows でドライバーを実行できるようにします。 ドライバーに特定のオペレーティング システムのバージョンが必要な場合は、ドライバーを実行できる唯一のバージョンとしてではなく、このバージョンをサポートされている最小バージョンとして扱ってください。

次の表は、サポートされているバージョンの Windows によって返されるバージョン情報をまとめたものです。 [その他] 列またはビルド番号の情報を使用して、同じバージョン番号を持つオペレーティング システムを区別します。

オペレーティング システム バージョン番号 dwMajorVersion dwMinorVersion その他
Windows 11 10.0 10 0 wProductType == VER_NT_WORKSTATION
Windows Server 2022 10.0 10 0 wProductType != VER_NT_WORKSTATION
Windows Server 2019 10.0 10 0 wProductType != VER_NT_WORKSTATION
Windows 10 (すべてのリリース) 10.0 10 0 wProductType == VER_NT_WORKSTATION
Windows Server 2016 10.0 10 0 wProductType != VER_NT_WORKSTATION
Windows Server 2012 R2 6.3 6 3 wProductType != VER_NT_WORKSTATION
Windows 8.1 6.3 6 3 wProductType == VER_NT_WORKSTATION
Windows 8 6.2 6 2 wProductType == VER_NT_WORKSTATION
Windows Server 2012 6.2 6 2 wProductType != VER_NT_WORKSTATION
Windows 7 6.1 6 1 wProductType == VER_NT_WORKSTATION
Windows Server 2008 R2 6.1 6 1 wProductType != VER_NT_WORKSTATION
Windows Server 2008 6.0 6 0 wProductType != VER_NT_WORKSTATION
Windows Vista 6.0 6 0 wProductType == VER_NT_WORKSTATION
Windows Home Server 5.2 5 2 wSuiteMask == VER_SUITE_WH_SERVER
Windows Server 2003 5.2 5 2 適用なし
Windows XP Professional x64 Edition (注を参照) 5.2 5 2 wProductType == VER_NT_WORKSTATION
Windows XP 5.1 5 1 適用なし
Windows 2000 5.0 5 0 適用なし

Windows XP Professional x64 Edition では、64 ビットカーネルモード ドライバーのみを実行できます。 したがって、32 ビットカーネル モード ドライバーは、このバージョンの Windows のチェックを安全に省略できます。

要件

要件
Header wdm.h (Ntddk.h を含む)

こちらもご覧ください

RTL_OSVERSIONINFOW

RtlGetVersion

RtlVerifyVersionInfo