次の方法で共有


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 をゼロ (空の文字列) に初期化します。

wServicePackMajor

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

wServicePackMinor

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

wSuiteMask

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

価値 意味
VER_SUITE_BACKOFFICE Microsoft BackOffice コンポーネントがインストールされています。
VER_SUITE_BLADE Windows Server 2003、Web Edition がインストールされています。
VER_SUITE_COMPUTE_SERVER Windows Server 2003、コンピューティング クラスター エディションがインストールされています。
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 のチェックを安全に省略できます。

必要条件

要件 価値
ヘッダー wdm.h (Ntddk.h を含む)

関連項目

RTL_OSVERSIONINFOW

RtlGetVersion する

RtlVerifyVersionInfo