What Is a Device Driver?

Device Drivers: Why They're Important & How to Work With Them

Image of four gear icons
© Arizona Ideaworks

A device driver is a small piece of software that tells the operating system and other software how to communicate with a piece of hardware.

For example, printer drivers tell the operating system, and by extension whatever program you have the thing you want to print open in, exactly how to print information on the page

Sound card drivers are necessary so your operating system knows exactly how to translate the 1's and 0's that comprise that MP3 file into audio signals that the sound card can output to your headphones or speakers.

The same general idea applies to video cards, keyboards, monitors, etc.

Keep reading for more on why drivers are important, including some more examples, as well as information on how to keep your drivers updated and what to do if they're not working properly.

How Exactly Do Device Drivers Work?

Think of device drivers like translators between a program you're using and a device that that program wants to utilize somehow. The software and the hardware were created by different people or companies and speak two completely different languages, so a translator (the driver) allows them to communicate.

In other words, a software program can provide information to a driver to explain what it wants a piece of hardware to do, information the device driver understands and then can fulfill with the hardware.

Thanks to device drivers, most software programs don't need to know how to work directly with hardware, and a driver doesn't need to include a full application experience for users to interact with.

Instead, the program and driver simply need to know how to interface with each other.

This is a pretty good deal for everyone involved, considering that there is a nearly endless supply of software and hardware out there. If everyone had to know how to communicate with everyone else, the process of making software and hardware would be near impossible.

How to Manage Device Drivers

Most of the time, drivers install automatically and never need more attention, aside from the occasional updating to fix bugs or add a cool new feature. This is true for some drivers in Windows that are downloaded via Windows Update.

The drivers for each piece of hardware in your Windows computer are centrally managed from Device Manager, available in all versions of Microsoft Windows.

Here are some common tasks in Windows involving drivers:

Here are a few additional resources related to drivers:

Many problems that can be isolated to a particular piece of hardware aren't problems with the actual hardware itself, but issues with the device drivers that are installed for that hardware. Some of the resources linked above should help you figure all that out.

More About Device Drivers

Beyond the basic software-driver-hardware relationship, there are some other situations that involve drivers (and that don't) that are kind of interesting.

While this is less common these days, some software is able to communicate directly with some types of hardware - no drivers necessary! This is usually only possible when the software is sending very simple commands to the hardware, or when both were developed by the same company, but this can also be thought of as a kind of built-in driver situation.

Some device drivers communicate directly with a device, but others are layered together.

In these situations, a program will communicate with one driver before that driver communicates with yet another one, and so on until the last driver actually performs the direct communication with the hardware.

These "middle" drivers often don't perform any function at all other than verifying that the other drivers are working properly. Regardless, whether there is one driver or multiples working in a "stack," all of it is done in the background without you having to know, or do, anything.

Windows uses .SYS files as loadable device drivers, meaning they can be loaded on an as-needed basis so that they're not always taking up memory. The same is true for Linux .KO modules.

WHQL is a testing process by Microsoft that helps prove that a particular device driver will work with a specific version of Windows. You might see that a driver you're downloading is or isn't WHQL certified. You can read more about Windows Hardware Quality Labs here.

Another form of the driver is the virtual device driver, used with virtualization software. They work similar to regular drivers but in order to prevent the guest operating system from accessing hardware directly, the virtual drivers masquerade as real hardware so that the guest OS and its own drivers can access hardware much like non-virtual operating systems.

In other words, while a host operating system and its drivers interface with actual hardware components, virtual guest operating systems and their drivers interface with virtual hardware through virtual device drivers, which are then relayed to the real, physical hardware by the host operating system.