Device Driver Basics

Most people understand that the "hardware" part of their computer is the real physical parts, like the keyboard, mouse, modem, hard drive and so on. They understand that the "software" is computer bits stored on the hard drive, CD-ROM, or other storage media. But most people are a little hazy about exactly what a "driver" is.

In this article, I'm going to reveal in plain English what a driver is, why we need drivers, and exactly where the drivers are hiding. To give you a basic understanding, I'm going to go back, way back, to the early days of computers.

The Early Days

The year is 1981 and the world is in the midst of a severe resession. IBM's main frame business has slowed and the company is losing money. Up until now they had been laughing at the array of microcomputers on the market: Atari, Commodore, sinclair. Toys really, mostly used to play computer games.

The problem was, these "toys" were selling like hot cakes. IBM had to get into that market and get into it fast. They didn't have time to design and build a computer complete enough to compete in the market, so they built an "open system". They used commonly available electronic components and they published every design detail (including the code), and they even provided plug in slots so that others could build components for their computer.

And people did provide components for the IBM PC. They provided video cards, memory expansion cards, input-output port cards, game port cards, hard disk interface cards, and much more. How were all these various devices able to interface with the PC's operating system? That's where a "driver" comes in.

A hardware device is constructed with various electronic components using various control signals, but the software interface to the operating system is standardized. A device's interface to the operating system must follow the interface specification. A driver is a piece of software that translates the hardware's control signals to signals that the operating system expects, and translates signals from the operating system to the hardware's control signals.

When the computer is started up, it would look in the "system" directory for files with the extension ".drv" and load them into memory. Specific files like autoexec.bat, config.sys, and win.ini were used to inform the operating system about drivers. Hardware would be configured through these files, or through jumpers located on the device itself.

The driver specification evolved along with the PC. Today when a PC starts, it executes the program ntdetect.com which queries the hardware components and builds the registery key HKEY_LOCAL_MACHINEHARDWARESYSTEMCurrentControlSet. This key exists only in memory and is created each time the computer boots. If all the drivers are loaded successfully, a copy of the key is saved as ControlSet00X.

Under the registery key CurrentControlSet, the subkey "Enum" contains a subkey for each harware device on the computer. Each device key contains fields for Hardware ID, Driver ID, Device Parameters, and other configuration data. The 32-bit drivers are files with the extension ".sys" and can be found in the folder C:/winnt/system32.

Driver Signing

Microsoft has been the brunt of much criticism because of the poor reliability of the Windows Operating System. I feel that much of this criticism is justified. On the other hand, as I described in part 1 of this article, the PC was designed by IBM as an "open" system. Anyone can sell a hardware device (or software) for the PC. Should Microsoft be held responsible for the quality from a third-party?

As I described in Part 1 of this article, the operating system doesn't interface directly to a hardware device. There is a piece of software called a "driver" that translates the hardware's control signals to signals that the operating system expects, and translates signals from operating system to the hardware's control signals. Obviously, the hardware manufacturer provides the driver.

Because the driver works between the operating system and the hardware, a bug in the driver can cause a serious problem. Many of the problems with Windows have come from bugs in third-party drivers that Microsoft had nothing to do with. For this reason, Microsoft created a Hardware Quality Lab to test drivers. A hardware manufacturer can submit their driver for testing, and if it is passes rigorous compatibility testing, it receives Microsoft's digital signature.

You may have received a message during the installation of a hardware device warning that the driver was not signed. Why would a hardware manufacturer fail to have their driver certified by Microsoft? The computer hardware market is very competitive and the manufacturer might want to bring a new product to market before thorough testing can be completed. Or maybe they don't want to or can't afford to pay Microsoft for certification. The question is, should you click on the "Continue" button to install the unsigned driver?

In my experience, I have never been able to trace a problem to an unsigned driver. If it's your home computer and you performed a back-up recently, go ahead and install the unsigned driver. If it's a computer on a corporate network, you may want to back-out of the installation and see if you can locate a signed driver first. Many times a manufacturer will release a product with an unsigned driver, then later provide a signed driver as a free download from their website.

If you decide to go ahead and install an unsigned driver, you can always update the driver later. If your computer works with the unsigned driver, I would not update the driver. When it comes to updating drivers (or the computers BIOS) I go by the old saying, "if it ain't broke don't fix it".

To update a driver, select Start | Settings | Control Panel and double-click on the "System Properties" Utility. In the "System Properties" Utility, select the "Hardware" tab and click on the "Device Manager" button. In the "Device Manager" window, right-click on the device in the list and select "Properties" in the popup menu. In the "Properties" dialog box, select the driver tab and click on the "Update Driver..." button.

In the "Properties" dialog box driver tab, you may have noticed the "Roll Back Driver" button. If your computer has problems with the new drive, you can click on the "Roll Back Driver" button to roll back to the previous the driver. Driver roll back saves only one previous driver, so if you update a driver, then update it again, the original driver is gone. If the computer has problems with the new driver, always roll back to the original driver before trying a different one. That way you'll always have the original driver to roll back to.

Copyright(C) Bucaro TecHelp.

Permission is granted for the below article to forward, reprint, distribute, use for ezine, newsletter, website, offer as free bonus or part of a product for sale as long as no changes are made and the byline, copyright, and the resource box below is included.

About The Author

Stephen Bucaro

To learn how to maintain your computer and use it more effectively to design a Web site and make money on the Web visit bucarotechelp.com To subscribe to Bucaro TecHelp Newsletter visit http://bucarotechelp.com/search/000800.asp

In The News:


pen paper and inkwell


cat break through


Microsoft Great Plains - Payroll & HR Inexpensive Solution? Not Any More

Microsoft Great Plains is main Microsoft Business Solutions accounting package... Read More

Think Of This

Think of this, first we had the HAM Radio, then... Read More

Can You Calculate Complex Financial Calculations?

Are you a whiz at calculating financial information? Not the... Read More

Microsoft Great Plains IV: Inventory Management

Great Plains Inventory Management (IV) module gives your business a... Read More

How Do I Get Rid Of That Darn Spyware?

Ad-Aware and Spybot are probably the two most well known... Read More

XML Parser and Their Types

XML parser is a software module to read documents and... Read More

Microsoft Great Plains customization ? Freight Forwarding/Transportation industry example

Microsoft Business Solutions Great Plains version 8.5, 8.0, 7.5, Great... Read More

Free Preventive Maintenance Software

While several preventive maintenance software manufacturers offer free trials for... Read More

Information Products: A Business Owners Best Friend

We live in a post-industrial age where information is the... Read More

Four Easy Ways To Prevent Spyware

How would you like to prevent spyware and adware from... Read More

EDI: Electronic Document Interchange for Microsoft Great Plains ? Overview for Software Developer/Pr

Microsoft Great Plains - Microsoft Business Solutions accounting and ERP... Read More

3 Reasons Why Medical Billing Software is Leading the Way

Since technology changes so quickly, it is hard to begin... Read More

Screenshots Vista Windows

Features Additionally, Vista will include many other new features.Aero Vista... Read More

Free Software: How Not To Get More Than You Bargained For!

I completed an experiment recently. I wanted to find out... Read More

Lowering The Risks In Developing Do-It-Yourself Software Projects

Mike Dunville* had a decision to make. As the new... Read More

Microsoft CRM Messaging through Lotus Domino eMail Server - Balanced Solution

Microsoft CRM and IBM Lotus Notes Domino seem to be... Read More

Oracle Development: JDeveloper 10G ? Java, J2EE, EJB, MVC, XML - Overview For Programmer

In 2004 Oracle, Inc. made its new step toward J2EE... Read More

Windows Screensavers Explained

In this article you will find some background information about... Read More

Ukraine IT Myths Dispersed

While Ukraine is becoming a new popular IT outsourcing destination,... Read More

Great Plains Dexterity History and Programming Overview

As of now - Great Plains Dynamics/eEnterprise is transformed/renamed into... Read More

Accounts Payable: A Powerful Document Management and Workflow Solution

Accounts payable is just one area of office management where... Read More

Microsoft Great Plains Data Conversion ? Overview For Developer

Looks like Microsoft Great Plains becomes more and more popular,... Read More

Microsoft Great Plains Oil & Gas ? Implementation & Customization Highlights

Microsoft Great Plains serves the wide spectrum of horizontal markets.... Read More

Microsoft Great Plains - Microsoft RMS Integration ? overview

Microsoft Great Plains and Microsoft Retail Management System (Microsoft RMS)... Read More

Corporate Accounting System: Microsoft Great Plains ? Overview

Corporate ERP/MRP selection might be tough one, especially considering very... Read More

Database Guru James F. Koopmann Reviews DBxtra Reporting and Query Tool

DBxtra is a powerful query and reporting tool that hides... Read More

Anti-Spyware Protection ? Holes in the Shining Armor

Looking at all the ads which promise to get rid... Read More

Importance of Coding Standards

Programming Help for BeginnersWe write programs to instruct computers. When... Read More

Why Java RDBMS?

It is a well known fact that Java as a... Read More

Microsoft Great Plains eCommerce: overview for developer

Microsoft Business Solutions Great Plains was designed back in the... Read More

Adware, What Is It?

Adware is a type of Spyware program that displays some... Read More

Microsoft Business Solutions - Navision Customization: C/SIDE, C/ODBC, C/FRONT, XBRL

Microsoft bought Navision, Denmark based software development company, along with... Read More

Microsoft CRM in Latin America: Implementation, Customization, Support ? Overview for Consultant

Microsoft Business Solutions CRM is present several years on the... Read More