Uninstall driver + restore/use old one

S

snowcrash

Hello there,

I wrote an installer for a special graphics driver (.sys + .inf) for
W2K, XP and Vista.

Before using this installer, the "VGA Safe" driver from Windows is
active and works fine.

The installation of my new graphics driver works fine, all works as
excepted, but I also have to deliver an uninstallation method of this
driver, which then should fallback to the original (or former one)
driver.

When uninstalling, I'm using some snipplets from the "Devcon" example
(command "remove") of the DDK, but unfortunately, the driver gets not
removed completely.

After a reboot, the "Found new hardware" wizard pops up and wants to
re-install the NEW driver, which was removed/deleted from my uninstaller
before.

Now my question: How can I remove the driver entirely without traces
and fallback to the original driver?

Thank you in advance,
Snowcrash
 
G

Gary G. Little

Use system restore to return to a point prior to your driver installation.

To do that within your delivery package and without using SystemRestore,
most of the uninstall you will have to invent. Typically, running a normal
"uninstall" will mostly only set the Start field of the registry service
entry to "Disable", which means you will bump into an instance of the driver
when you install. Really removing it means you have to find the INF/PNF
files, delete them, remove your drivers registry keys and then delete the
SYS files. Of course you also have to decide about removing the WDF files
and registry entries that are done for you when you install a WDF driver.
Once you do all of that, if it's a sigined driver, don't be surprised but
what you will see it "restored" for you from the caches XP and Vista
maintain.

Generally, that level of uninstall is simply not worth it.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top