From Windows Vista, Microsoft changed the versioning of system files.

And that’s a good thing.  A colleague at work today said

You can tell whether a system file is a Service Pack 1 file based on the version number…


The explanation is as follows.

Lets look at the version Windows 7 reports for my work machine:


Microsoft Windows [Version 6.1.7601]

6.1 is the version of Windows, in this case 6.1 is Windows 7
7601 is the build number.  The 1 in the build string, indicates that it’s an Windows 7 with Service Pack 1.

“But what about hotfixes? They have an extra set of numbers on them …” 
Well let’s look at the WLANAPI.DLL on my work PC.

WLANAPI.DLL  6.1.7600.16385
WLANAPI.DLL  6.1.7601.17514

6.1.7600.16385 indicates that it was from Windows 7 – No Service Pack. (ie. see the 0)
6.1.7601.16385 indicates that it is from Windows 7 – Service Pack 1. (ie. see the 1)

The build number is still there, and indicates the Service Pack level.
The revision number follows on from the build number.  Often you’ll see difference revision numbers when Microsoft issues a hotfix or patch.

Simple, isn’t it.