A new version of Windows Driver Kit was released recently, the 7600.16385.0 and probably some of you’ve noticed that it does not support Windows 2000 Build Environment.
This is a bad news for me, as I still need to support Windows 2000 in some of my projects. Before, with WDK 6.x versions you had a possibility to build for 2k specifically. Even if you build in Windows XP Environment the binary was de-facto compatible with 2k kernel.
If you compile your driver for XP and try to load it under 2k, most likely it will fail to load. Dependency Walker shows the following unbound functions (total: 96) in my case:
The interesting thing is that this particular binary does not use fast mutexes, but standard mutexes. The WDK in this case by default links to ExAcquireFastMutex and simular. Well, this is good from one point, it makes your code to run faster, but it fails to run it in ancient OS like 2k…