A new white paper on how to develop bus drivers are now available at Windows Hardware Developer Central (WHDC) website:
http://www.microsoft.com/whdc/driver/wdf/KMDFBusDrv.mspx. If you are leveraging Kernel Mode Driver Framework (KMDF) that is included in Windows Embedded Standard 2009 release, you can take a look.
Writing a bus driver is never an easy task. You may ask: When to write a bus driver? Here is the answer from the white paper:
Microsoft supplies bus drivers for most hardware buses such as USB, IEEE 1394, and PCI, and for devices that comply with class specifications that run over such buses. For example, the USB common class generic parent driver (USBCCGP.sys) supports USB class devices. Third parties rarely are required to write bus drivers for such device types. Consider writing a bus driver only in the following situations:
· You must support a new type of parent bus that none of the existing Microsoft-supplied bus drivers supports.
· You are splitting a single device into several virtual devices that require individual Plug and Play functionality, and you cannot use any of the existing Microsoft-supplied bus drivers.
· You must support sideband communication with your device because a driver that is layered above your driver in the device stack prevents applications or other drivers from communicating with your device or driver.
Feel free to leave your comments here on your usage of KMDF in the embedded world, your feedback to the KMDF component, etc. Thank you.