Geoff Chappell - Software Analyst
It’s long overdue, and even then is mere background for anything worth calling research, but March continues February's tabulation of what changes among the exported functions and variables at the lower levels of Windows 8, Windows 8.1 and Windows 10. All links below are to pages that have merely been updated, except if noted explicitly as new.
More or less incidentally I found myself demonstrating to someone my sample program and driver that uses the HAL’s undocumented x86 BIOS emulator. Much to my surprise the program complained of an error from the driver. Inspection confirmed that the driver was (correctly) complaining of an error from the BIOS. On the computer in question, the particular int 15h function that’s used for this exercise is rejected by the BIOS unless executing in real mode. So be it. Still, it got me looking at the page:
Even well into April, and possibly for long after, depending on demands from other work, most of these pages on new Windows API functions would better be understood as being still in preparation. I have neglected this tabulation—indeed, this website—for so long that I have three Windows versions to update for. It’s a bit much to take on, certainly in “spare” time, but be assured it is being taken on. Meanwhile, use with more than ordinary caution, especially on three counts.
First, KERNELBASE acquires ever more functionality from ever more sources, and the history takes time to track down and organise. Related to this redirection of functionality, mostly to KERNELBASE, is the huge expansion of the API Set Schema. This website was the first, by a long way, to document this redirection in detail, e.g., to give the file format and to describe how the redirection affects each set. It may even have been the first to note the rich prospects for subversion. Now, however, even though there is some documentation from Microsoft, the scheme has grown much too large for me to try documenting exhaustively. Indeed, there’s some sign that Microsoft is having trouble keeping track of it all.
Second, I’ve bitten the bullet and decided that it’s worth attempting to catalogue when one function at a higher level, e.g., in KERNEL32, is little but a wrapper around a lower-level function, typically in NTDLL. Unlike forwards, these are found only by (tediously) inspecting the code and even then there is editorial discretion about how much code is too much to count as a wrapper. I may yet abandon this.
Third, now that even the development kits for successive Windows versions don’t provide dated libraries of documentation, it’s not at all easy to see how to report each function’s documentation status—or even what to report. It will be some time before I cover this systematically and reliably.