A method and apparatus for diagnosing and repairing hardware and software
problems relating to computer peripheral devices and their software
drivers. The method and apparatus enumerate the devices, identify devices
having errors, detect replacement software drivers and then un-install
possibly defective software drivers so that they may be replaced
automatically by the operating system, run hardware tests and attempt
repairs on hardware devices.