WHEADEF.H

The public symbol file NTKRPAMP.PDB for the original release of Windows 10 tells that the kernel is built with the WHEADEF.H header at

d:\th.public.fre\sdk\inc

and draws from it the type definitions that are tabulated below.

Nowadays, WHEADEF.H is among the headers in the Software Development Kit (SDK) for Windows 10. It is there in the “um” subdirectory with many other headers that are intended only for user-mode programming. It dates from Windows 7, again in the SDK. WHEADEF.H seems never to have been supplied with a Windows Driver Kit (WDK) except in bundles with the SDK. All its significant content is anyway duplicated in NTDDK.H and in NTOSP.H, but no sign is known of how this happens. NTDDK.H is, of course, a standard header for kernel-mode programming, but the kernel’s own source code does not include it. Whether the kernel includes WHEADEF.H directly or through some other header is not known.

In the table, the line numbers on the left are from WHEADEF.H, both as known from the symbol file and from the header as supplied with the SDK for the original release of Windows 10. The line numbers on the right are from the NTDDK.H and NTOSP.H in the contemporaneous WDK.

Line Number Type NTDDK.H NTOSP.H
36 enum _WHEA_ERROR_SOURCE_TYPE 14160 49077
57 enum _WHEA_ERROR_SOURCE_STATE 14181 49098
96 union _WHEA_NOTIFICATION_FLAGS 14220 49137
108 union _XPF_MC_BANK_FLAGS 14232 49149
117 union _XPF_MCE_FLAGS 14241 49158
126 union _AER_ROOTPORT_DESCRIPTOR_FLAGS 14250 49167
138 union _AER_ENDPOINT_DESCRIPTOR_FLAGS 14262 49179
149 union _AER_BRIDGE_DESCRIPTOR_FLAGS 14273 49190
168 struct _WHEA_NOTIFICATION_DESCRIPTOR 14292 49209
173 unnamed union for u in _WHEA_NOTIFICATION_DESCRIPTOR 14297 49214
174 unnamed struct for Polled in u in _WHEA_NOTIFICATION_DESCRIPTOR 14298 49215
178 unnamed struct for Interrupt in u in _WHEA_NOTIFICATION_DESCRIPTOR 14302 49219
187 unnamed struct for LocalInterrupt in u in _WHEA_NOTIFICATION_DESCRIPTOR 14311 49228
196 unnamed struct for Sci in u in _WHEA_NOTIFICATION_DESCRIPTOR 14320 49237
205 unnamed struct for Nmi in u in _WHEA_NOTIFICATION_DESCRIPTOR 14329 49246
223 struct _WHEA_XPF_MC_BANK_DESCRIPTOR 14347 49264
241 struct _WHEA_XPF_MCE_DESCRIPTOR 14365 49282
257 struct _WHEA_XPF_CMC_DESCRIPTOR 14381 49298
266 struct _WHEA_PCI_SLOT_NUMBER 14390 49307
267 unnamed union for u in _WHEA_PCI_SLOT_NUMBER 14391 49308
268 unnamed struct for bits in u in _WHEA_PCI_SLOT_NUMBER 14392 49309
283 struct _WHEA_XPF_NMI_DESCRIPTOR 14407 49324
294 struct _WHEA_AER_ROOTPORT_DESCRIPTOR 14418 49335
315 struct _WHEA_AER_ENDPOINT_DESCRIPTOR 14439 49356
335 struct _WHEA_AER_BRIDGE_DESCRIPTOR 14459 49376
358 struct _WHEA_GENERIC_ERROR_DESCRIPTOR 14482 49399
412 struct _WHEA_IPF_MCA_DESCRIPTOR 14536 49453
418 struct _WHEA_IPF_CMC_DESCRIPTOR 14542 49459
424 struct _WHEA_IPF_CPE_DESCRIPTOR 14548 49465
430 struct _WHEA_ERROR_SOURCE_DESCRIPTOR 14554 49471
442 unnamed union for Info in _WHEA_ERROR_SOURCE_DESCRIPTOR 14566 49483

For the record, lines 26 to 470 inclusive of the 475-line WHEADEF.H are duplicated as lines 14150 to 14594 of NTDDK.H and 49067 to 49511 of NTOSP.H.