HAL Versions

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.

32-Bit Windows (x86)

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.

Builds

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.

64-Bit Windows (x64)

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.