Determining OS version from the Evo stack trace

Evolution software uses a third-party component for error handling and reporting, and this includes a detailed stack trace on error. An example snippet

...
date/time : 2015-09-26, 13:44:04, 532ms
computer name : EVO1
user name : SYSTEM
operating system : Windows NT New Service Pack 2 build 6002
system language : English
...

Unfortunately, the "operating system" reporting hasn't been updated it some time to reflect the common name, so all versions beyond Server 2003 have a generic string that includes the build number. It's this build number that allows us to determine the operating system:

Build number

Operating System

2600

Windows XP

3790

Server 2003 (all editions, including R2)

6000

Windows Vista

6001

Windows Vista SP1

6002

Server 2008 and some Vista

7600

Windows 7

7601

Windows 7 or Server 2008 R2

9200

Windows 8.1, Server 2012 and beyond

It's not always possible to tell from the build number whether it's the desktop OS or the corresponding server OS, but you ought to be able to figure that out from context.

  • Windows Vista ≈ Server 2008
  • Windows 7 ≈ Server 2008 R2
  • Windows 8 ≈ Server 2012
  • Windows 8.1 ≈ Server 2012 R2
  • Windows 10 ≈ Server 2016

Note that Service Packs are just cumulative sets of updates not really impacting the version, but R2 is considered a different version of the operating system.

We believe that all future OS versions will continue to report #9200 to applications unless that app has been built specially for the newer OS: this is a kind of workaround to application-compatibility issues.

We'll update this table as we learn more.