NTSOC.H

The public symbol file HALMACPI.PDB for the original release of Windows 10 tells that the HAL is built with the INTRUPTP.H header at

d:\th\minkernel\hals\inc

and draws from it the type definitions that are tabulated below. No header named NTSOC.H is known in any Device Driver Kit (DDK) or Windows Driver Kit (WDK).

User-Defined Types

Line numbers in the left column are from the unseen NTSOC.H for the original Windows 10, as read from the HAL’s public symbols.

Line Number Type
241 enum _KNOWN_CONTROLLER_TYPE
277 enum _INTERRUPT_TARGET_TYPE
300 enum _INTERRUPT_RESULT
1139 struct _INTERRUPT_FUNCTION_TABLE
1354 struct _INTERRUPT_LINE
1462 struct _INTERRUPT_TARGET
1472 unnamed struct HypervisorTarget in
struct _INTERRUPT_TARGET
1512 struct _INTERRUPT_LINE_STATE

That this is a complete account of types that are defined in NTSOC.H looks unlikely. Much more plausible is that the public symbols would have nothing at all from NTSOC.H except that these types are selected because of _REGISTERED_INTERRUPT_CONTROLLER in intruptp.h. Put aside what gets this structure into the public symbols. It’s enough to bring in all the above. The _INTERRUPT_FUNCTION_TABLE and the _KNOWN_CONTROLLER_TYPE are directly nested. The first of these then brings in _INTERRUPT_TARGET, _INTERRUPT_RESULT, _INTERRUPT_LINE and _INTERRUPT_LINE_STATE, and the first of those brings in _INTERRUPT_TARGET_TYPE. Thus is the whole selection explained as incidental and possibly as unintended.