Geoff Chappell, Software Analyst
The public symbol file NTKRPAMP.PDB for the original release of Windows 10 tells that the kernel is built with the HAL.H header at
and draws from it the following type definitions:
|Line Number||Type||Line Number
|99||struct _DEVICE_DESCRIPTION||34620||also line 33221 in WDM.H|
|931||enum _IPI_TYPE||35156||loses 296|
|3983||struct _HAL_NODE_RANGE||37940||loses 268|
|4155||enum HAL_APIC_DESTINATION_MODE||38080||loses 32;
also line 12228 in NTDDK.H
|4193||unnamed union u in _INTERRUPT_REMAPPING_INFO||38118|
|4196||unnamed struct Msi in u in _INTERRUPT_REMAPPING_INFO||38121|
|4248||unnamed union LowPart in _INTERRUPT_HT_INTR_INFO||38173|
|4249||unnamed struct bits in LowPart in _INTERRUPT_HT_INTR_INFO||38174|
|4265||unnamed union HighPart in _INTERRUPT_HT_INTR_INFO||38190|
|4266||unnamed struct bits in HighPart in _INTERRUPT_HT_INTR_INFO||38191|
|4303||unnamed struct ControllerInput in _INTERRUPT_VECTOR_DATA||38228|
|4310||unnamed struct XapicMessage in _INTERRUPT_VECTOR_DATA||32235|
|4315||unnamed struct Hypertransport in _INTERRUPT_VECTOR_DATA||38240|
|4319||unnamed struct GenericMessage in _INTERRUPT_VECTOR_DATA||38244|
|4324||unnamed struct MessageRequest in _INTERRUPT_VECTOR_DATA||38249|
The header HAL.H is not known in any Device Driver Kit (DDK) or Windows Driver Kit (WDK).
That said, all the types that the kernel is known to pick up from HAL.H are also defined in NTOSP.H. The line numbers on the left are from HAL.H, as inferred from the public symbol file for the kernel. Those on the right are from NTOSP.H, as disclosed in the “minwin” directory of the Windows 10 WDK in its original release. It is not known whether HAL.H is the source of definitions in NTOSP.H or whether both pick them up from yet another header. Whatever the mechanism, NTOSP.H does not have all that HAL.H has.
Two of the types are also defined in the standard headers WDM.H and NTDDK.H, one each.