Windows driver development 101 – Here’s what to know
It can be an overwhelming process.
If you are interested in Windows device driver development, then look no further – this article is for you.
Put simply, a driver is software that allows the system to communicate and work with plenty of devices. However, this definition has not got it entirely covered, because there are many kinds of drivers and you can divide them into two major sections.
Here is a breakdown of them:
- Functional drivers: the most classic kind. They implement standard interfaces for accessing devices. These are generally made by device manufacturers, for instance, audio-device vendors, graphics-card vendors, and more.
- Filter drivers: do not address a device directly. However, the process requests aimed at those devices. Generally, system-to-device I/O requests get processed through a driver stack. A filter driver can log, remove access to devices, or even just modify it. As an example, antiviruses using file-system filter driver scan through files before letting it be opened.
What knowledge is needed?
The number one thing you must know is the basic architecture conceptions of the Windows OS. Meaning that you HAVE to understand serialization, threading, synchronization, and much more.
Coding these kinds of software is not like coding other apps, because you cannot just pull out a sample and start replicating to reach what you are looking for.
Instead, you have to do a lot of work upfront for getting a basic understanding. Otherwise, you are bound to have problems after problems, without having any idea on how you can fix that.
How to learn driver development?
If you have coded any sort of Linux or UNIX drivers, and you know the Windows OS conceptions, you are able to learn what you must know by going through the documentation that comes with the WDK (Windows Driver Kit). Install the latest version of the Windows Driver Kit, and go through the basics about Windows drivers.
This documentation is incredibly good and covers wide-ranging topics. Over the course of years, the online articles on how to create Windows drivers have become so advanced that they are very understandable at this point.
Enroll in a seminar
Taking a seminar is the best way to go about coding this type of software at the highest speed. Do not get rid of this option too quick, not even if you think you are really smart.
Of course, it requires a financial commitment. That said, Windows drivers are confusing and complicated at the same time, therefore, they can be incredibly helpful for understanding the required insights.
What is more, if the speaker there has a lot of hands-on experience, they can save you plenty of time because you will be able to avoid some of the basic talking points and myths that float around the space.
- Facebook’s Libra is a pile of red flags ready to be stuffed down your throat and wallet
- Hasbro is releasing a voice-activated version of Monopoly to spy on your kids
- PSA: Your second-hand Nest cam might be accessible by the old owner
- Because people are terrible, YouTube might move all children’s content to YouTube Kids