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 を含む) |