Aug 05

Keeping on top of the drivers that power your devices can be a logistical pain, but in this article we make life a little easier for you.

Over two years since its initial launch, Microsoft Windows Vista still has problems with drivers. To a lesser extent, Windows 7 has similar problems as manufacturers struggle to adapt.

Some people never seem to encounter device driver problems, while others spend considerable time trying to find the right versions to make their operating system communicate properly with their peripherals. Given the pickiness of recent versions of Windows about which drivers they install, these tiny but essential pieces of code have entered the public’s consciousness in ways that have hit Microsoft hard (and gladdened the hearts of the open-source community).

As new versions of Windows appear, they carry increasing numbers of generic device drivers. These are designed to support a range of industry standard features, but to add support for device-specific features hardware manufacturers still have to write their own custom code. And that can be where the problems begin to creep in.

Device Driver Basics

A device driver is a piece of software that sits between the operating system and the hardware, and which allows the operating system to access the hardware using standard system calls. Drivers provide a convenient way of interfacing all kinds of devices without the operating system or applications having to bother with the details of physically communicating with the hardware.

When you install a new device, you also install its driver. When the system boots up, it loads the installed device drivers into the kernel, thereby making the devices they support available for use. Device drivers are so important that they’re normally given away free. In fact, when you plug in a new device Windows automatically pops up its New Device Wizard to guide you through the simple process of downloading the relevant driver.

Every peripheral uses device drivers because of the overwhelming flexibility they provide. This even includes motherboard components such as the temperature management hardware. After all, there’s no telling whose fans or liquid cooling system a user might install, but the operating system still has to cope with those choices.

Managing Drivers in Windows

Microsoft Windows has to cope with a bewildering spectrum of peripherals because it relies completely on device drivers. It has its own flexible (and complex) specification for writing and integrating them with its running kernel.

You can inspect and manage individual drivers in Windows if you know where to look. In all versions of Windows from XP onwards, click ‘Start’ and right click ‘Computer’. Select ‘Manage’ and the little-used Computer Management Console appears.

Double-click ‘Device Manager’ in the left hand pane and a list of all the computer’s peripherals appears, sorted alphabetically into hardware areas. As you can see, pretty much everything is considered a peripheral device (even the CPU), and therefore has its own device driver.

Click on a group to open its contents, and then click on a peripheral. A small window appears. If the device is installed and the driver is running, a message will appear in the device status window saying ‘This device is working properly’.

Click the Driver tab to see details of the device driver and options to manage it. Here you can get details of the current driver version and update it by hand. If the current one causes your peripheral to act strangely or to stop working, you can roll it back to a previous version.

Windows’ underused computer management console allows you to easily manage device drivers.

Click ‘Driver Details’. The information here is useful if you ever need to call a support line about a peripheral. Quote the details found in the resultant pop-up when asked for the details of the installed driver.

The ‘Update Driver’ button allows you to install newer versions of the driver by hand. Click it and Windows asks if you’d like to search online for the latest version or to open a file you’ve downloaded. Searching automatically will contact what Microsoft describe as ‘several locations’ online to locate a more up to date version. If none exists, a message appears telling you so. If there’s a better version, the usual Windows installation wizard will guide you through the update process.

The ‘Roll Back Driver’ button will be active if the driver has ever been updated. It allows you to step back to a previous driver version in cases where a newer one starts causing problems. Allied to this button is the ‘Disable’ button. Some drivers must be kept running (such as those for the keyboard and mouse) but others can be disabled and re-enabled to clear problems.

Finally, the ‘Uninstall’ button will completely remove the device driver from the system. This is the button to use if you ever sell a peripheral: Windows will no longer need its driver, and your PC might run a little smoother without the redundant driver installed.

The Problem With Drivers

The hardware flexibility made possible by device drivers leads to a problem. Taking printers as an example, because each make and model has its own unique requirements (not just commands, but also signals and crucial timings), you have to install exactly the right driver if all the features are to work as they should.

The crux of the problem is that those drivers are not only hardware specific but also operating system specific. When Microsoft releases a major new Windows, your printer’s manufacturer needs to write a driver designed specifically for the new Windows version. Until this happens, your printer is basically so much scrap metal and plastic.

This is what happened during the rush to install Windows Vista by early adopters a couple of years ago. Reports quickly surfaced of even relatively new peripherals not working after upgrading from XP. A lack of drivers for Vista was to blame. Some uncharitable pundits even suggested that hardware manufacturers would use this as an excuse to abandon support for perfectly serviceable devices and force customers to buy again.

In truth, writing a device driver is a very specialised job, requiring detailed, in-depth knowledge of the device to be driven and of the operating system on which the driver must run. Poorly written or badly debugged device drivers can bring operating systems the world over crashing down.

Ploughing through manufacturer’s websites for exactly the right driver can be a time-consuming job.

Because device drivers have to be made as bug free as is humanly possible within time and budget constraints, specialised programmers called software engineers sometimes undertake their development and maintenance. They apply dedicated specification and coding disciplines to software design to produce code that can be proven to conform exactly to the original design specification.

It’s said that all programs are exploitable, though, and device drivers have certainly been undermined by hackers. Attacks can mounted in order to gain access to the operating system, and also to crash drivers that operate network cards (thereby denying service to users). This is the origin of the term ‘denial of service attack’: in the original attack, a single hand crafted packet of data would be sent to a computer, which would completely lock it up until it was switched off and on again.

Hacking has come a long way in the intervening 15 years, so it’s important to keep your device drivers updated. With a vast ocean of hardware manufacturers, hardware ranges and drivers, managing that task has traditionally been complex. Now, however, there’s a new breed of system maintenance software dedicated to analysing and maintaining your operating system’s driver structure in an efficient way.

Easy updates

One such program is DriverEasy, which you can download for free from www.drivereasy.com. Run the downloaded executable and click ‘Next’ on the splash screen. Click ‘Next’ again to accept the default installation folder, and ‘Next’ again to accept the name for the Start Menu folder. Accept the desktop icon (or un-tick the box), and press ‘Next’ again. Finally, press ‘Install’. Leave the ‘Launch DriverEasy’ box ticked and click ‘Finish’ to run the product for the first time.

DriverEasy’s user interface is very simple and direct. Simply hit the ‘Scan Now’ button and you’re away.

DriverEasy’s user interface is very simple to understand and use. The first task is to click the large green ‘Scan Now’ button in the middle of the window. Click this and DriverEasy scans the installed device drivers, checking their version numbers against its database. As it does so, it produces a list of those it considers out of date. When DriverEasy has completed its scan, it pauses to show the list of suspect drivers. Click the big ‘Get Drivers’ button at the bottom of the interface to continue.

The next screen presents a scrollable list of upgrades required to the identified device drivers. Each entry has three buttons. Initially, the ‘Download’ button is the only one active. Click one of these and DriverEasy downloads the new driver. This can take a few minutes depending on the speed and workload of the remote server upon which the driver resides, and the speed of your broadband link.

Once downloaded, you can upgrade to the new version of the driver by pressing the ‘Install’ button that should have become active. In Windows Vista or 7, this will result in a User Account Control pop-up asking if you want to proceed. Click ‘Yes’ and continue.

Once downloaded, the driver’s own package takes over to run the installation process.

The driver’s own software now takes over. Follow its installation wizard’s onscreen instructions to install the upgrade. If, however, you’ve decided against installing the new driver, simply press the relevant ‘Delete’ button and DriverEasy will delete the upgrade from your system.

Work your way down the list of drivers to upgrade, downloading and installing packages as you go. Computers where no driver updates have been applied for a long time will require a larger number of driver upgrades. Though you can only download one driver at a time, for users who update their system regularly, the number of drivers to be upgraded on subsequent scans with DriverEasy should be minimal.

Proxy Settings

DriverEasy may have any problems contacting the internet if you’re using it on a network that has a proxy server. If this happens, help is at hand. A proxy server acts as a stepping-stone between a local network and the internet. It can speed up internet access by storing files that are accessed regularly and serving them itself. Some proxies also filter objectionable content and spam (even whole websites). This latter action is usually performed on corporate networks to prevent employees spending all day using social media sites.

Setting DriverEasy’s options can allow you to securely update from a network protected by a proxy server.

If you’re updating your drivers at work or school, the chances are that you’ll have to go through the network’s local proxy server. At the bottom of the DriverEasy user interface is the ‘Settings’ button. Click this and you can enter the details of the local proxy server. With ‘Use a proxy server’ selected, enter the server’s IP address and port number (the default of 80 is usually fine). If you have to log into the proxy server to access it, also enter your username and password for the proxy. Finally, press ‘Test’ to make sure that everything is set up correctly.

Get Hardware Working After Vista Updates

Some devices may stop working if you’ve installed a service pack in Vista. This is noted in Microsoft Support article 497187.

If this happens, first click the ‘Start’ button, enter *device manager* and press [Return]. Navigate to the device in the resulting Device Manager window. If the device has a yellow exclamation mark next to it, this means that Windows cannot find the device driver. If there’s no exclamation mark, it means that the driver is installed but not functioning properly.

Taking the first problem first, click ‘Start’ and enter *windows update* in the search box. When Windows Update appears, click ‘Check for updates’ to look online for any available updates. If any are available, click one of them to see its details. If one of the updates is a device driver, check its associated tick box and press ‘OK’. On the main Windows Update window you’ll now see a button marked ‘Install Updates’. Click this to update the driver.

 

If, however, the device driver is installed but keeps malfunctioning, you can reinstall it. In Device Manager, right-click the troublesome device and select ‘Uninstall’. Click ‘OK’ to confirm your action, then right-click the device again and select ‘Scan for hardware changes’. You may receive a message to say that Windows has identified new hardware and asking whether you would like to install its driver. Click this pop up box and select ‘Locate and install driver software (recommended)’ to reinstall the driver.

Find Drivers For Unknown Hardware

What happens if you draw a blank on even the name of the manufacturer of a piece of old hardware? Luckily, you can find out more information from within Windows, and possibly find a driver to get the device working properly.

Plug the device in and reboot. Once back in Windows, from the ‘Start’ button, in Windows Vista or 7, enter the command *msinfo32* in the search box. In XP, click ‘Run’ and enter the command. A window pops up a comprehensive list of system information. Open the Components part of the tree and click on Problem Devices.

Click on the device you’d like to identify and some information will appear. Part of this is called the PNP Device ID. This is the physical identifier for the device and contains several fields.

The number following ‘VID_’ gives the unique vendor ID of the device. The number following the string ‘PID_’ gives the vendor’s hardware identifier for the device. Sometimes, this information is displayed in the error message associated with the device.

Armed with this information, go to www.pcidatabase.com and enter the vendor or hardware ID in the appropriate fields to uncover the name of the maker and of the device. You can then go to the support section of the relevant vendor’s website to download the latest drivers, or to one of the driver databases listed in the Resources section.

The Open Source Alternative

Increasingly, open source developers are choosing to write their own device drivers. This is an important aspect of making desktop Linux distributions as easy to use as possible. Interoperability with existing hardware is seen as essential for increasing the number of people switching from Windows or creating dual boot systems.

Writing device drivers requires very detailed knowledge of not only the peripheral’s hardware but also of the host operating system and its kernel. Device drivers have privileged access to the running operating system and its resources, and mistakes can lead to system crashes and data losses.

For this reason, it’s essential that hardware manufacturers supply as much detail as possible about their products for independent developers to use to create their drivers. Where this information is not forthcoming, some enterprising hackers have discovered that by studying devices in operation, they can infer what’s going on in a process called ‘reverse engineering’.

Surprisingly, given its traditional animosity towards Linux, Microsoft last year released 20,000 lines of device driver source code to the open source community for use in Linux kernel development. Not many people realise that Microsoft even has a dedicated Open Source Technology Centre.

But maybe Microsoft’s actions aren’t quite as altruistic as they first appear. In a statement issued in July 2009, the company said that the drivers are meant to ‘enhance the performance of the Linux operating system when virtualised on Windows Server 2008 Hyper-V or Windows Server 2008 R2 Hyper-V’.

Comments are closed.