Windows Version Numbers






4.87/5 (10 votes)
Values returned by GetVersionEx for Windows operating systems
Introduction
Sometimes you need to know a very simple thing, like "Is it Windows NT?". Some of the solutions to this problem are excellent and very thorough, but seem to be overkill. But when you try to find out what it takes to determine what OS your program is running on, then you find there is no one place to go to.
What Microsoft Says
The facts about what data are returned by GetVersionEx
are scattered
around Microsoft site. Here are a few articles I have tracked down:
- OSVERSIONINFO
- How to Determine Which 32-Bit Windows Version Is Being Used
- How to Determine the Version of Windows 95/98/Me in Use
As you will see from reading them, these articles are not complete.
Table of Windows Version Numbers
I have pulled together following table from many different sources, including Usenet news groups, searching web sites, and reading code here and on other developer sites. It is only a beginning, and if you have knowledge to share please email me and I will acknowledge your contribution.
dwPlatformID |
dwMajorVersion |
dwMinorVersion |
dwBuildNumber |
|
95 | 1 | 4 | 0 | 950 |
95 SP1 | 1 | 4 | 0 | > 950 && <= 1080 |
95 OSR2 | 1 | 4 | < 10 | > 1080 |
98 | 1 | 4 | 10 | 1998 |
98 SP1 | 1 | 4 | 10 | >1998 && < 2183 |
98 SE | 1 | 4 | 10 | >= 2183 |
Me | 1 | 4 | 90 | 3000 |
NT 3.51 | 2 | 3 | 51 | 1057 |
NT 4 | 2 | 4 | 0 | 1381 |
2000 | 2 | 5 | 0 | 2195 |
XP | 2 | 5 | 1 | |
CE 1.0 | 3 | 1 | 0 | |
CE 2.0 | 3 | 2 | 0 | |
CE 2.1 | 3 | 2 | 1 | |
CE 3.0 | 3 | 3 | 0 |
How to use this information
I have developed a simple function which uses this table to return
a single value that can be used in applications. The function is
called GetWinVer
and it is in FontFile demo
here.
Future Enhancements
Depending on what readers want to see, there are several areas for new entries:
- Windows versions prior to Win95
- CE versions
- Service pack information for NT