Tuesday, June 9, 2009

Introduction to Windows Device Drivers

Device drivers are small files an operating system uses to communicate with various hardware devices connected to a computer. Rather than communicating directly with the hardware, the system sends messages through a driver, which calls out the functions for each device as it is needed. A device driver serves its purpose with little to no input from the end user. For example, once a driver is installed, it is likely that you will never have to interact with it. It simply works in the background until called upon by the operating system.

How Windows Device Drivers Work

The Windows operating system allocates memory for its default drivers. The drivers fill entries into what is called a Function Dispatch Table. Whenever functions of a particular device are required, Windows refers to the Function Dispatch Table and selects the accurate functions as needed.

For example, you want to use your Canon scanner to scan an image. Windows references the Function Dispatch Table for the code needed to carry out that function. The system then sends a request to the scanner. When a driver receives a request, it performs in one of three ways:

• It responds accordingly by carrying out the function and sends confirmation that the task is complete.

• If the device is busy with another task, it accepts the request and puts the job in a queue.

• It notifies the operating system that a problem exists and the job cannot be performed.

Most drivers operate in what is known as the kernel mode. The Windows system handles program codes in kernel or user mode. Processes running in kernel mode have the ability to interact directly with hardware and system memory. In contrast, user mode is often designated for software applications. This mode allows programs to call upon and use services delivered by the operating system, but they cannot directly access the hardware.

The Problems that Exist with Device Drivers

Similar to computer programs, device drivers and hardware have the ability to create numerous problems. Some of the most common issues include instability with particular programs, as well as the crashing of programs or the computer itself. In many cases, updating or completely replacing a device driver can solve hardware and software problems.

How to Update Windows Drivers

Microsoft's Windows Hardware Quality Lab tests a variety of device drivers. When a driver passes a certain number of tests, it is then digitally signed and recognized by the Windows system. Users can also install unsigned drivers, depending on the setting of their computer's Signature Checking Level. Signature checking can be disabled with Level 0, while Level 1 allows you to check for digital signatures and gives confirmation if none are found. You can, however, proceed with the installation even if no signatures are found for your drivers. Level 2 is a setting that blocks the installation of all devices that have not been signed by Microsoft.

To check the signatures of certain device drivers, access the "Start" menu, click "Run" and type "sigverif" in the command field. This command runs a scan of all the device drivers on your computer and searches for those that are unsigned.