I386.H

The public symbol file NTKRPAMP.PDB for the original release of Windows 10 says nothing of any header named I386.H, yet one certainly does exist and surely is included when compiling the kernel’s source code—just not when compiling the separate source file that exists only for merging type information into the public symbol file.

Though type information from any source file’s #include of I386.H does not appear in any of the symbol files from the downloadable package of public symbols for the original Windows 10, it is known from a statically linked library named CLFSMGMT.LIB which Microsoft publishes with the Software Development Kit (SDK) for Windows 10. This library archives an object file that was produced from creating a pre-compiled header. it plausibly is complete because much of the point to building a pre-compiled header is that it carries the definitions of all types that might be used in any other compilation (with the same options and macro definitions). It tells of an I386.H header at

d:\th.public.fre\internal\minwin\priv_sdk\inc\ntos

Types and line numbers that are disclosed by this library are tablulated below. The header I386.H is not known in any Device Driver Kit (DDK) or Windows Driver Kit (WDK). Several of these types may look at first to be well-known, even from being defined in the standard header WINNT.H for user-mode programming—but beware that the definitions in WINNT.H are not for the i386.

Line Number Type NTOSP.H
300 struct _KNONVOLATILE_CONTEXT_POINTERS 1731
311 struct _KSTACK_SWITCH_FRAME 1742
324 struct _KCALLOUT_FRAME 1755
353 struct _KSWITCHFRAME 1784
404 struct _LDTINFORMATION  
414 struct _PROCESS_IO_PORT_HANDLER_INFORMATION 1797
426 struct _VDM_IO_HANDLER_FUNCTIONS 1809
435 struct _VDM_IO_HANDLER 1818