This routine provides more information about the system than is returned by the ACCEPT FROM SYSTEM-INFO statement.
CALL "WIN$VERSION"
USING WINVERSION-DATA
| WINVERSION-DATA Group item as follows: |
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 is found in the COPY library winvers.def. |
Upon return from WIN$VERSION, all of the data elements contained in WINVERSION-DATA are filled in. If you call WIN$VERSION and the host machine is not a Windows or Windows NT system, the fields are set to zero.
The WINVERSION-DATA fields have the following meaning:
| Windows Version | WIN-MAJOR-VERSION | WIN-MINOR-VERSION | Other |
|---|---|---|---|
| Windows XP | 5 | 1 | Not applicable. |
| 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 |
The copybook winvers.def is not available in this COBOL system.
The following fields are not supported in this COBOL system:
These fields will return spaces or zeroes, as appropriate.