To allow driver developers to write device drivers that are source-code compatible across all Microsoft® Windows® operating systems, the Windows Driver Model (WDM) was introduced. Kernel-mode drivers that follow WDM rules are called WDM drivers. All WDM drivers must:
While this DDK emphasizes development of WDM drivers for kernel mode, information pertinent to kernel-mode drivers that do not follow WDM rules is also provided when necessary. This allows you to maintain existing non-WDM drivers and to write new drivers that interface with these existing drivers.
If you are writing new kernel-mode drivers, they should be WDM drivers unless you are writing a driver that will be inserted into a stack of non-WDM drivers. Please read the documentation for device type-specific Microsoft-supplied drivers, contained in this DDK documentation, to determine how new drivers must interface with Microsoft-supplied drivers.
Note All new driver stacks should consist of WDM drivers.
There are cross-platform issues to consider, whether you are developing WDM or non-WDM drivers. For more information, see Writing Drivers for Multiple Platforms and Operating Systems.