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 を含む) |
関連項目
RtlGetVersion を する
RtlVerifyVersionInfo の