Geoff Chappell - Software Analyst
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 |