I closed many of the chapters in this book with a series of Microsoft Windows 98 compatibility notes. While Microsoft originally planned that you'd be able to ship a single driver binary file for both Windows 98 and Microsoft Windows 2000, the sad fact is that so lofty a goal might prove elusive in practice. Not surprisingly, Windows 2000 continued to evolve long after Windows 98 was up and running on millions of PCs, and it supports several kernel-mode service functions that Windows 98 does not. If a WDM driver calls one of these functions, Windows 98 simply won't load the driver because it can't resolve the reference to the symbol. In this appendix, I'll describe a static virtual device driver (VxD)—the WDMSTUB sample on the companion disc—that resolves a few of these symbols. Once you have the ability to load a driver that calls functions that Windows 98 doesn't normally support, you might find that you need a way to determine at run time whether you're running under Windows 98 or Windows 2000; I'll also describe a heuristic that you can use to make this determination.