Geoff Chappell - Software Analyst
The Hardware Abstraction Layer (HAL) is, after the kernel, the second-most vital part of the kernel-mode architecture of Windows. Each Windows package is distributed with a selection of HALs which are each specialised for particular hardware. These HALs have different names as files on the distribution media. Early versions of Windows come with very many HALs, and some service packs add HALs that were not in the original releases of the same Windows version. The trend, however, is that the selection gets thinner as Windows matures. Indeed, 64-bit Windows for the x64 processor benefits so much from a decade of advances and standardisation that each version has only the one HAL. Similar advances and standardisation for the x86 processor allowed that 32-bit Windows Vista and Windows 7 settle on two HALs. Windows 8 leaves just the one.
Versions before Windows Vista install only one of their many HALs. Whichever is chosen, the installed copy is named HAL.DLL. This standard name is hard-coded into the loader. Unless an alternative is specified by a /HAL switch in BOOT.INI, the HAL that is loaded is whatever file is named HAL.DLL.
Windows Vista and higher install one HAL as HAL.DLL, as with earlier versions, but also install their one or two HALs under their own names. These names are hard-coded into the loader, along with the standard name HAL.DLL. In Windows Vista specifically, a detecthal option in the Boot Configuration Data (BCD) may direct the loader to select from the two. In Windows Vista and higher, a hal option can specify any file to load as the HAL. Without the hal option, the HAL that is loaded depends on the Windows version:
The following table attempts to sketch the history of the many different HALs by showing the file name, a descriptive string from within the file, the Windows releases that are known to have included the file, and whether the file is specialised for single-processor support. The descriptive string is from an internal variable that Microsoft’s symbol files name as HalName. It’s less obscure than it sounds, for it’s also the name that shows for the HAL in the registry as a subkey of HKEY_LOCAL_MACHINE\HARDWARE\RESOURCEMAP\Hardware Abstraction Layer.
File Name | HAL Name | Distribution | UP/MP |
---|---|---|---|
hal.dll | PC Compatible Eisa/Isa HAL | Windows NT 3.1 Windows NT 3.50 Windows NT 3.51 Windows NT 4.0 Windows 2000 except SP1 Windows XP Windows Server 2003 |
single-processor |
hal.dll.softex | PC Compatible Eisa/Isa HAL | Windows NT 4.0 SP4, SP5 and SP6 | single-processor |
hal486c.dll | PC Compatible Eisa/Isa HAL (486 C Stepping) | Windows NT 3.1 Windows NT 3.50 Windows NT 3.51 Windows NT 4.0 Windows 2000 SP3 and SP4 |
single-processor |
hal98apc.dll | NEC PC-9800 APIC HAL | Windows 2000 SP3 and SP4 | single-processor |
hal98mp.dll | NEC PC-9800 MPS HAL | Windows 2000 SP3 and SP4 | multi-processor |
hal98tmr.dll | PC-9800 System Clock 10MHz (support 2nd Timer) | Windows 2000 SP3 and SP4 | single-processor |
hal98up.dll | PC-9800 System Clock 10MHz | Windows 2000 SP3 and SP4 | single-processor |
halaacpi.dll | ACPI 1.0 - APIC platform UP | Windows 2000 Windows XP Windows Server 2003 |
single-processor |
halacpi.dll | ACPI Compatible Eisa/Isa HAL | Windows 2000 Windows XP Windows Server 2003 |
single-processor |
Windows Vista Windows 7 |
multi-processor | ||
halapic.dll | UP MPS 1.1 - APIC platform | Windows NT 3.51 | single-processor |
UP MPS 1.4 - APIC platform | Windows NT 4.0 Windows 2000 except SP1 Windows XP Windows Server 2003 |
single-processor | |
halast.dll | AST Manhattan MP HAL | Windows NT 3.1 Windows NT 3.50 Windows NT 3.51 Windows NT 4.0 |
multi-processor |
halborg.dll | SGI HAL | Windows 2000 | multi-processor |
halcbus.dll | Corollary SMP-CbusI and CbusII MP HAL | Windows NT 3.1 Windows NT 3.50 |
multi-processor |
Corollary C-bus Architecture MP HAL Version 3.2.0 | Windows NT 3.51 | multi-processor | |
Corollary C-bus Architecture MP HAL Version 3.4.0 | Windows NT 4.0 | multi-processor | |
halcbusm.dll | Corollary C-bus Architecture MP HAL Version 3.2.0 | Windows NT 3.51 SP5 | multi-processor |
Corollary C-bus MicroChannel Architecture MP HAL Version 3.4.0 | Windows NT 4.0 | multi-processor | |
halmacpi.dll | ACPI 1.0 - APIC platform MP | Windows 2000 except SP1 Windows XP Windows Server 2003 |
multi-processor |
ACPI x86 platform | Windows Vista Windows 7 Windows 8 Windows 8.1 Windows 10 |
multi-processor | |
halmca.dll | PC Compatible MicroChannel HAL | Windows NT 3.1 Windows NT 3.50 Windows NT 3.51 Windows NT 4.0 |
single-processor |
halmps.dll | MPS 1.1 - APIC platform | Windows NT 3.50 Windows NT 3.51 |
multi-processor |
MPS 1.4 - APIC platform | Windows NT 4.0 Windows 2000 except SP1 Windows XP Windows Server 2003 |
multi-processor | |
halmps.dll.softex | MPS 1.4 - APIC platform | Windows NT 4.0 SP4, SP5 and SP6 | multi-processor |
halmpsm.dll | MPS 1.4 MCA - APIC platform | Windows NT 4.0 | multi-processor |
halncr.dll | NCR 3x series MP HAL | Windows NT 3.1 Windows NT 4.0 except SP3 |
multi-processor |
haloli.dll | Olivetti LSX5030 MP HAL | Windows NT 3.1 Windows NT 3.50 Windows NT 3.51 Windows NT 4.0 |
multi-processor |
halsp.dll | SystemPro or compatible MP HAL | Windows NT 3.1 Windows NT 3.50 Windows NT 3.51 Windows NT 4.0 Windows 2000 except SP1 Windows XP |
multi-processor |
halws3.dll | Sequent WinServer (TM) 3500 HAL | Windows NT 3.51 SP5 | multi-processor |
halwyse7.dll | Wyse7000i MP HAL | Windows NT 3.1 Windows NT 3.51 Windows NT 4.0 |
multi-processor |
From the Release Notes for Windows NT 4.0 SP4, it seems that the files named HAL.DLL.SOFTEX and HALMPS.DLL.SOFTEX are intended to replace HAL.DLL and HALMPS.DLL on systems that have various “Softex Incorporated and Phoenix Technologies utilities”. The version resources in both files list “Softex, Inc” as the manufacturer and copyright holder.
HALBORG.DLL is another HAL that is unusual in naming its manufacturer as someone other than Microsoft. Its version resources list the manufacturer as SGI and assert copyright for Silicon Graphics, Inc.
The following 32-bit (x86) builds have been inspected for these notes. Most are from MSDN discs. Some, especially since Microsoft greatly reduced its shipment of operating systems on MSDN discs, are from service packs downloaded (typically as self-extracting executables) from a Microsoft website.
Special mention must be made of the very oldest builds. Even among the many discs that I retain from MSDN subscriptions in the 1990s, what was then the new Windows that is entirely its own operating system rather than a large DOS program goes no further back than Windows NT 3.51. For all practical effect, Microsoft informally disowned the early versions, even for its so-called Archive editions. For decades I had little choice but to treat Windows NT 3.51 as the dawn of time for these notes. In 2017 someone pointed me to an online collection of earlier builds. The sample is inevitably incomplete. The provenance is unknown. I have since sought more: the WinWorld online museum is notable.
Builds are arranged in increasing order of the file version as recorded in the executable’s resources. This version number is readily visible using Windows Explorer either in a so-called infotip for the file or by accessing the Version tab in the Properties dialog for the file. Programmers know this version number as coming from the so-called root block of the version-information resource, specifically from the dwFileVersionMS and dwFileVersionLS members of a VS_FIXEDFILEINFO structure.
The date stamp shown for each version is more obscure. File dates are easily modified after the executable is built and are anyway liable to be shown differently when read from different time zones. However, there is in each executable’s header a date stamp which is set when the executable is built and which is not commonly changed afterwards. It is readily accessible to anyone with programming knowledge and appropriate tools, e.g., Microsoft’s own DUMPBIN utility.
Any study worth making of Windows—and please remember that the list below exists only as a catalogue of which builds are studied—is much too intensive to cover pre-release builds, hot fixes and other updates. Access to pre-release builds anyway tends to come with constraints and compromise that other researchers may tolerate (and even be happy with) but which I do not. None of this work is done with any sort of assistance from Microsoft beyond the binaries, as published by the tens and even hundreds of millions, and the same documentation that’s available to all Windows programmers.
File Version | File Name | File Header Date Stamp | File Size | Package |
---|---|---|---|---|
no version resource | halcbus.dll halncr.dll haloli.dll halwyse7.dll |
2C3B5B9C (7th July 1993) 2C3B5AA7 2C3B5BA0 2C3B5B8B |
62,676 58,180 50,516 49,972 |
Windows NT 3.1 Advanced Server |
halast.dll | 2C4440D4 (14th July 1993) | 55,796 | ||
hal.dll hal486c.dll halmca.dll halsp.dll |
2C47123B (16th July 1993) 2C471242 2C47123E 2C47122D |
48,164 46,068 45,556 53,636 |
||
no version resource | halast.dll halcbus.dll haloli.dll halsp.dll halwyse7.dll |
2C7D49EA (26th August 1993) 2C7D49FD 2C7D4A01 2C7D49D6 2C7D49E0 |
55,796 62,676 50,516 53,636 49,972 |
Windows NT 3.1 Workstation, Windows NT 3.1 SP3 |
hal.dll hal486c.dll halncr.dll |
2C7D4B45 (26th August 1993) 2C7D4B7F 2C7D4103 |
48,164 46,068 58,180 |
Windows NT 3.1 Workstation | |
halmca.dll | 2C8517C0 (1st September 1993) | 45,556 | ||
no version resource | halncr.dll | 2CCC63D4 (25th October 1993) | 58,180 | Windows NT 3.1 SP3 |
hal.dll hal486c.dll halmca.dll |
2DC8321A (4th May 1994) 2DC83223 2DC8321F |
48,164 46,068 45,556 |
||
3.50.800.1 | hal.dll hal486c.dll halast.dll halcbus.dll halmca.dll halmps.dll halncr.dll haloli.dll halsp.dll halwyse7.dll |
2E646355 (31st August 1994) 2E646356 2E64635B 2E64635F 2E646358 2E64636C 2E64636E 2E646362 2E646361 2E646368 |
49,824 49,232 50,416 68,544 47,712 63,520 73,296 45,712 48,288 46,192 |
Windows NT 3.50 |
3.50.807.1 | hal.dll hal486c.dll halast.dll halcbus.dll halmca.dll halmps.dll haloli.dll halsp.dll halwyse7.dll |
2FC633D3 (26th May 1995) 2FC633D8 2FC633E4 2FC633EB 2FC633DE 2FC6340B 2FC633F8 2FC633F2 2FC63405 |
50,336 49,232 50,416 68,544 47,712 63,008 45,712 48,288 46,192 |
Windows NT 3.50 SP3 |
3.51.1025.1 | hal.dll hal486c.dll halapic.dll halast.dll halcbus.dll halmca.dll halmps.dll haloli.dll halsp.dll halwyse7.dll |
2FB24F4A (12th May 1995) 2FB24F4A 2FB24F68 2FB24F52 2FB24F55 2FB24F4C 2FB24F6A 2FB24F5E 2FB24F5C 2FB24F64 |
48,416 47,376 63,616 46,416 79,776 45,488 65,696 40,048 52,320 40,848 |
Windows NT 3.51 |
3.51.1029.1 | halncr.dll | 2FB24F73 (12th May 1995) | 79,392 | |
3.51.1057.3 | hal.dll halapic.dll halmps.dll |
30619DD5 (21st September 1995) 30619E10 30619E1F |
48,448 63,552 65,664 |
Windows NT 3.51 SP2, Windows NT 3.51 SP3, Windows NT 3.51 SP4 |
3.51.1057.6 | hal.dll hal486c.dll halast.dll halcbus.dll halcbusm.dll halmca.dll haloli.dll halsp.dll halws3.dll halwyse7.dll |
32110707 (13th August 1996) 32110707 3211070F 32110717 32110717 3211070F 3211071E 3211071E 32110725 32110726 |
49,296 48,256 46,512 80,448 78,592 46,368 40,256 53,168 49,648 40,944 |
Windows NT 3.51 SP5 |
halapic.dll halmps.dll |
321B9B3F (21st August 1996) 321B9B3F |
64,416 66,496 |
||
4.0.1372.1 | hal.dll hal486c.dll halast.dll halcbus.dll halcbusm.dll halmca.dll haloli.dll halsp.dll halwyse7.dll |
31EE6C52 (19th July 1996) 31EE6C52 31EE6C55 31EE6C58 31EE6C58 31EE6C55 31EE6C5B 31EE6C5B 31EE6C5E |
51,424 47,840 45,888 81,728 79,872 45,952 39,904 56,064 40,512 |
Windows NT 4.0 |
4.0.1374.1 | halncr.dll | 31F05382 (20th July 1996) | 78,304 | |
4.0.1378.1 | halapic.dll halmps.dll halmpsm.dll |
31F578CB (24th July 1996) 31F578CB 31F578CD |
65,664 67,776 66,752 |
|
4.0.1381.3 | hal.dll halapic.dll halast.dll halcbus.dll halcbusm.dll halmps.dll haloli.dll halsp.dll halwyse7.dll |
32AF1370 (11th December 1996) 32AF13A0 32AF137D 32AF1382 32AF1387 32AF13A4 32AF1391 32AF138C 32AF139B |
51,488 65,664 45,920 81.760 79,872 67,808 39,936 56,064 40,544 |
Windows NT 4.0 SP2 |
4.0.1381.4 | hal.dll hal486c.dll halapic.dll halast.dll halcbus.dll halcbusm.dll halmca.dll halmps.dll halmpsm.dll haloli.dll halsp.dll halwyse7.dll |
33247F88 (11th March 1997) 33247F8D 33247FB1 33247F94 33247F98 33247F9D 33247F91 33247FB6 33247FBA 33247FA5 33247FA1 33247FAC |
51,744 48,160 66,240 45,920 81,952 80,096 46,208 68,288 67,328 39,968 56,352 40,512 |
Windows NT 4.0 SP3 |
hal.dll.softex halmps.dll.softex |
35E5D874 (28th August 1998) 35E5D875 |
76,160 92,960 |
Windows NT 4.0 SP4, Windows NT 4.0 SP5, Windows NT 4.0 SP6 |
|
4.0.1381.86 | halncr.dll | 35D34E39 (14th August 1998) | 79,040 | Windows NT 4.0 SP4 |
4.0.1381.98 | hal.dll hal486c.dll halapic.dll halast.dll halcbus.dll halcbusm.dll halmca.dll halmps.dll halmpsm.dll haloli.dll halsp.dll halwyse7.dll |
35E72341 (29th August 1998) 35E72346 35E72377 35E7234D 35E72350 35E72354 35E72349 35E72379 35E7237F 35E72366 35E7235E 35E72371 |
52,384 48,768 66,880 46,112 82,624 80,672 46,848 68,960 68,000 40,224 59,960 40,736 |
Windows NT 4.0 SP4, Windows NT 4.0 SP5 |
4.0.1381.133 | halncr.dll | 36379189 (29th October 1998) | 79,424 | Windows NT 4.0 SP5 |
4.0.1381.164 | hal.dll hal486c.dll halapic.dll halast.dll halcbus.dll halcbusm.dll halmca.dll halmps.dll halmpsm.dll halncr.dll haloli.dll halsp.dll halwyse7.dll |
36C49893 (13th February 1999) 36C498C1 36C49A8B 36C49922 36C49954 36C4998E 36C498F8 36C49AC6 36C49AF9 36C49B16 36C499F5 36C499BB 36C49A49 |
52,352 48,736 66,880 46,112 82,624 80,672 46,784 68,960 68,000 79,424 40,224 56,960 40,736 |
Windows NT 4.0 SP6 |
5.0.2168.1 | hal.dll halapic.dll halborg.dll halmps.dll halsp.dll |
381B75AE (31st October 1999) 381B75B4 381B75B0 381B75B5 381B75AD |
95,296 91,936 148,672 93,408 69,024 |
Windows 2000 |
5.0.2171.1 | halaacpi.dll halacpi.dll halmacpi.dll |
381F8C6E (3rd November 1999) 381F8C6E 381F8C6E |
81,184 66,080 82,048 |
|
5.0.2195.1163 | halborg.dll | 38B32C16 (23rd February 2000) | 148,768 | Windows 2000 SP1 |
5.0.2195.1608 | halaacpi.dll halacpi.dll |
3946DBB9 (14th June 2000) 3946DB7A |
81,600 66,528 |
|
5.0.2195.4864 | hal.dll hal486c.dll hal98apc.dll hal98mp.dll hal98up.dll halapic.dll halborg.dll halmps.dll halsp.dll |
3C4DBAD2 (23rd January 2002) 3C4DBADA 3C4DBFA3 3C4DBAF8 3C4DBAF2 3C4DBAE1 3C4DBAD2 3C4DBAE1 3C4DBADA |
95,456 63,968 106,496 107,904 110,080 92,192 148,960 93,632 69,088 |
Windows 2000 SP3 |
5.0.2195.4884 | hal98tmr.dll | 3C574F8E (30th January 2002) | 110,048 | |
5.0.2195.5201 | halaacpi.dll halacpi.dll halmacpi.dll |
3C989E09 (21st March 2002) 3C989E09 3C989E1E |
82,112 66,848 82,976 |
|
5.0.2195.6655 | hal.dll hal486c.dll hal98apc.dll hal98mp.dll hal98tmr.dll hal98up.dll halborg.dll halsp.dll |
3E25B985 (16th January 2003) 3E25B985 3E25B99F 3E25B9A1 3E25B99A 3E25B99C 3E25B981 3E25B989 |
95,456 63,968 106,496 107,904 110,016 110,080 148,960 69,088 |
Windows 2000 SP4 |
5.0.2195.6691 | halaacpi.dll halacpi.dll halapic.dll halmacpi.dll halmps.dll |
3E7A7338 (21st March 2003) 3E7A7338 3E7A731B 3E7A733A 3E7A731B |
82,176 66,848 92,224 83,040 93,696 |
|
5.1.2600.0 | hal.dll halaacpi.dll halacpi.dll halapic.dll halmacpi.dll halmps.dll |
3B7D8321 (18th August 2001) 3B7D830F 3B7D830B 3B7D8316 3B7D8314 3B7D831B |
102,528 128,768 78,464 147,456 131,200 149,504 |
Windows XP |
halsp.dll | 3B7D831D (18th August 2001) | 76,416 | Windows XP, Windows XP SP1 |
|
5.1.2600.1106 | hal.dll halaacpi.dll halacpi.dll halapic.dll halmacpi.dll halmps.dll |
3D6DD5B1 (29th August 2002) 3D6DD5AE 3D6DD5AE 3D6DD5AE 3D6DD5AE 3D6DD5B1 |
101,376 127,872 77,440 146,560 129,920 148,352 |
Windows XP SP1 |
5.1.2600.2180 | hal.dll halaacpi.dll halacpi.dll halapic.dll halmacpi.dll halmps.dll halsp.dll |
41107B36 (4th August 2004) 41107B29 41107B28 41107B2E 41107B2D 41107B34 41107B36 |
105,472 131,968 81,280 150,656 134,400 152,704 77,696 |
Windows XP SP2 |
5.1.2600.5512 | hal.dll halaacpi.dll halacpi.dll halapic.dll halmacpi.dll halmps.dll halsp.dll |
48025183 (14th April 2008) 4802517F 4802517F 4802517F 4802517F 48025183 48025183 |
105,344 131,840 81,152 150,528 134,400 152,576 77,696 |
Windows XP SP3 |
5.2.3790.0 | hal.dll halaacpi.dll halacpi.dll halapic.dll halmacpi.dll halmps.dll |
3E800035 (25th March 2003) 3E80002C 3E80002B 3E800030 3E800030 3E800035 |
103,936 108,544 78,336 116,736 110,592 117,760 |
Windows Server 2003 |
5.2.3790.1830 | hal.dll halaacpi.dll halacpi.dll halapic.dll halmacpi.dll halmps.dll |
42435B3A (25th March 2005) 42435B35 42435B34 42435B34 42435B35 42435B3B |
109,568 116,736 82,944 123,904 118,272 124,928 |
Windows Server 2003 SP1 |
5.2.3790.3959 | hal.dll halaacpi.dll halacpi.dll halapic.dll halmacpi.dll halmps.dll |
45D6972F (17th February 2007) 45D69729 45D69729 45D6972A 45D6972A 45D6972F |
109,658 118,272 82,944 125,440 119,808 126,464 |
Windows Server 2003 SP2 |
6.0.6000.16386 | halacpi.dll halmacpi.dll |
4549AC9B (2nd November 2006) 4549AC9A |
134,760 160,872 |
Windows Vista |
6.0.6001.18000 | halacpi.dll halmacpi.dll |
47918A38 (19th January 2008) 47918A38 |
141,880 177,208 |
Windows Vista SP1, Windows Server 2008 |
6.0.6002.18005 | halacpi.dll halmacpi.dll |
49E018D9 (11th April 2009) 49E018D9 |
140,776 177,128 |
Windows Vista SP2 |
6.1.7600.16385 | halacpi.dll halmacpi.dll |
4A5BBF07 (14th July 2009) 4A5BBF07 |
137,296 194,640 |
Windows 7 |
6.1.7601.17514 | halacpi.dll halmacpi.dll |
4CE788D2 (20th November 2010) 4CE788D2 |
137,088 194,432 |
Windows 7 SP1 |
6.2.9200.16384 | halmacpi.dll | 5010ADD0 (25th July 2012) | 319,216 | Windows 8 |
6.3.9600.16384 | halmacpi.dll | 52158FAC (22nd August 2013) | 337,248 | Windows 8.1 |
6.3.9600.17031 | halmacpi.dll | 530888CC (22nd February 2014) | 337,752 | Windows 8.1 With Update |
10.0.10240.16384 | halmacpi.dll | 559F3A8F (9th July 2015) | 350,560 | Windows 10 |
10.0.10586.0 | halmacpi.dll | 5632D11F (29th October 2015) | 354,648 | Windows 10 Version 1511 |
10.0.14393.0 | halmacpi.dll | 57898D85 (15th July 2016) | 356,704 | Windows 10 Version 1607 |
10.0.15063.0 | halmacpi.dll | 19754CBD | 358,816 | Windows 10 Version 1703 |
10.0.16299.15 | halmacpi.dll | 31177890 | 368,536 | Windows 10 Version 1709 |
10.0.17134.1 | halmacpi.dll | F95DD0E5 | 371,616 | Windows 10 Version 1803 |
10.0.17763.1 | halmacpi.dll | 8F42742D | 381,960 | Windows 10 Version 1809 |
10.0.18362.1 | halmacpi.dll | 9DF976C7 | 395,280 | Windows 10 Version 1903 |
10.0.18362.387 | halmacpi.dll | 04AEFA2C | 397,328 | Windows 10 Version 1909 |
10.0.19041.1 | halmacpi.dll | E70C3C71 | 400,400 | Windows 10 Version 2004 |
Where two or more Windows packages are listed for a set of files, the files with the same name in each package are the same, byte for byte. This happens as early as Windows NT 3.1 SP3: the HALs in the sample that has been found for inspection are the same as in the apparently original Windows NT 3.1 Workstation.
Service-pack holdings are complete starting with version 4.0. That Windows NT 4.0 SP1 and Windows 2000 SP2 are omitted is because self-extracting executables have been inspected for these notes but no HALs were found.
The installation images for Windows Vista and higher each have a HAL that is simply named HAL.DLL but it is not built as HAL.DLL: it is already a copy of HALMACPI.DLL.
How or why Microsoft gets the date stamps in the HALs from later releases of Windows 10 to be so obviously invalid is not yet understood. No, a few scraps tossed from a Microsoft blog do not count as how or why.
The 1909 release of Windows 10 was given its own place in the succession of roughly biannual updates named for year and month, but it has nothing like the significance of other such updates which each increased the build number by several hundred or even thousands. The 1909 release is listed here only because Microsoft presented it as a significant update. All the pages of this study of the HAL treat the 1909 release as a minor bug-fix update of the 1903 release.
All x64 builds of Windows so far have just the one HAL, named HAL.DLL.
Microsoft’s distribution of 64-bit Windows on MSDN discs in the early years was even less reliable than was my renewal of subscriptions. I seem never to have received a 64-bit edition of Windows XP, which is therefore not included in this study. (I suspect anyway that it was a build of version 5.2, i.e., of Windows Server 2003, rebadged for better marketing.) Though correspondents tell me that 64-bit Windows Vista was readily available the moment that Windows Vista was released, my experience is instead that a year-long MSDN subscription in 2007 produced no x64 build of the original Windows Vista. The copy inspected of that is instead from an OEM disc. Though all service-pack builds that have been inspected for this study have been available through MSDN subscriptions, some of the copies studied have instead been downloaded as self-extracting executables from Microsoft’s free websites since, for who knows what reason, it frequently happened that the MSDN site that I paid to access was intolerably slow—not that my tolerance was high, especially while Microsoft was at the time not just leaving me to the tedium of burning disks and labelling them, but telling me that their purpose was to be environmentally friendly.
File Version | File Header Date Stamp | File Size | Package |
---|---|---|---|
5.2.3790.1830 | 42435DCA (25th March 2005) | 279,552 | Windows Server 2003 SP1 |
5.2.3790.3959 | 45D6929B (17th February 2007) | 279,040 | Windows Server 2003 SP2 |
6.0.6000.20500 | 4588DB26 (20th December 2006) | 269,928 | Windows Vista |
6.0.6001.18000 | 4791ACED (19th January 2008) | 233,528 | Windows Vista SP1, Windows Server 2008 |
6.0.6002.18005 | 49E04118 (11th April 2009) | 233,448 | Windows Vista SP2 |
6.1.7600.16385 | 4A5BDF08 (14th July 2009) | 263,232 | Windows 7, Windows Server 2008 R2 |
6.1.7601.17514 | 4CE7C669 (20th November 2010) | 263,040 | Windows 7 SP1 |
6.2.9200.16384 | 5010ABE8 (25th July 2012) | 395,504 | Windows 8 |
6.3.9600.16384 | 5215F8B9 (22nd August 2013) | 418,144 | Windows 8.1 |
6.3.9600.17031 | 530894F9 (22nd February 2014) | 424,280 | Windows 8.1 With Update |
10.0.10240.16384 | 559F383E (9th July 2015) | 425,824 | Windows 10 |
10.0.10586.0 | 5632D17A (29th October 2015) | 428,888 | Windows 10 Version 1511 |
10.0.14393.0 | 578997A3 (15th July 2016) | 434,528 | Windows 10 Version 1607 |
10.0.15063.0 | CEA0A646 | 455,584 | Windows 10 Version 1703 |
10.16299.15 | 869C055B | 471,448 | Windows 10 Version 1709 |
10.0.17134.1 | 4252FF42 | 527,264 | Windows 10 Version 1803 |
10.0.17763.1 | 2007B05D | 566,272 | Windows 10 Version 1809 |
10.0.18362.1 | CD937075 | 613,896 | Windows 10 Version 1903 |
10.0.18362.387 | 1CD3FB4F | 617,784 | Windows 10 Version 1909 |
10.0.19041.1 | 1A7BE8E9 | 17,208 | Windows 10 Version 2004 |
Where two or more Windows packages are listed for the same build, the HAL.DLL files are the same, byte for byte. This identity is formalised for Windows 7 SP1 and Windows Server 2008 R2 SP1 since Microsoft provides the one self-extracting executable for both product names.