The 2 things a new driver writer needs...

Updated: April 21, 2005

Don Burn: ...are training and the recognition that, as part of the operating system, drivers are mission critical software.

The two things a new driver writer needs are training and the recognition that, as part of the operating system, drivers are mission critical software. All too often, I see a question on Usenet, "How do I get started writing a Windows Device Driver?" The best answer is to take a course. Windows driver development is not for the novice. The Windows Driver Framework team in an email discussion listed over fifty types of drivers! The latest DDK documentation has close to one thousand Kernel Service Routines and this does not count the specific device class functions.

Do not think that just because you have developed drivers for another operating system that you do not need training. The Windows kernel-programming environment is quite different from many other systems. At best, you will produce a sub-optimal driver for your device; it is more likely you will create an unstable mess for your users.

Good driver training will help you understand the Windows model so that you can both develop a high quality driver and track the many changes that are occurring in driver development.

One thing never changes in kernel driver development - drivers are mission critical software. Even the simplest of kernel drivers can crash or damage a system if it misbehaves. You cannot just throw some code together for a kernel mode driver. Nor should you assume a driver source you have is a good starting point. The last developer may have thrown together some code!

Components in the kernel need careful design and coding to produce a reliable driver. A kernel driver needs to be well tested; your device driver is part of the operating system. Use the tools from the DDK to find and fix problems in your driver, and submit your driver to logo testing if possible.

Before you think that it does not matter my driver will never be in anything critical, consider what happened with one of my first drivers. I was asked to develop a display driver in college, to show graphics on a black and white display for use by a programming class. Less than a year later, I got a call asking for some improvements. The driver was in use at a major hospital displaying data to the doctors during open-heart surgery, a very mission critical application!

The recognition that drivers, as part of the operating system, are mission critical software is the foundation for quality kernel code. Getting the training you need, and staying up to date on the changes in driver development will allow you to build on that foundation.


Top of pageTop of page