このルーチンは、ACCEPT FROM SYSTEM-INFO 文で戻されるよりも詳しいシステム情報を提供します。
| WINVERSION-DATA のグループ項目は次のとおりです。 |
01 WINVERSION-DATA.
03 WIN-MAJOR-VERSION PIC X COMP-X.
03 WIN-MINOR-VERSION PIC X COMP-X.
03 WIN-PLATFORM PIC X COMP-X.
88 PLATFORM-WIN-31 VALUE 1.
88 PLATFORM-WIN-95 VALUE 2.
88 PLATFORM-WIN-9X VALUE 2.
88 PLATFORM-WIN-NT VALUE 3.
03 WIN-WORDSIZE PIC X COMP-X.
88 WIN-WORDSIZE-16 VALUE 1.
88 WIN-WORDSIZE-32 VALUE 2.
88 WIN-WORDSIZE-64 VALUE 3.
03 WIN-BUILDNUMBER PIC X(4) COMP-X.
03 WIN-CSDVERSION PIC X(128).
03 WIN-SERVICEPACK-MAJOR PIC X COMP-X.
03 WIN-SERVICEPACK-MINOR PIC X COMP-X.
03 WIN-SUITEMASK PIC X(4) COMP-X.
03 WIN-PRODUCTTYPE PIC X COMP-X.
88 WIN-NT-WORKSTATION VALUE 1.
88 WIN-NT-DOMAIN-CONTROLLER VALUE 2.
88 WIN-NT-SERVER VALUE 3.
WINVERSION-DATA は COPY ライブラリ winvers.def にあります。 |
WIN$VERSION から戻ると、WINVERSION-DATA に含まれるすべてのデータ要素に情報が挿入されます。WIN$VERSION を呼び出す際にホスト マシンが Windows や Windows NT ではない場合、フィールドはゼロに設定されます。
WINVERSION-DATA フィールドの意味は次のようになります。
| Windows バージョン | WIN-MAJOR-VERSION | WIN-MINOR-VERSION | その他 |
|---|---|---|---|
| Windows XP | 5 | 1 | 該当なし |
| Windows XP Professional x64 Edition | 5 | 2 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION) && (SYSTEM_INFO.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64 |
| Windows Vista | 6 | 0 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
| Windows 7 | 6 | 1 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
| Windows Server 2012 | 6 | 2 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
| Windows Server 2008 R2 | 6 | 1 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
| Windows Server 2008 | 6 | 0 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
| Windows Server 2003 R2 | 5 | 2 | GetSystemMetrics(SM_SERVERR2) != 0 |
| Windows Home Sever | 5 | 2 | OSVERSIONINFOEX.wSuiteMask & VER_SUITE_WH_SERVER |
| Windows Server 2003 | 5 | 2 | GetSystemMetrics(SM_SERVERR2) == 0 |