Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

At MSDN it is stated that there are two techniques to install INF files on Windows XP or later:

  • Programmatically through SetupCopyOEMInf function.
  • Add an entry called CopyInf on an INF section.

Are there an equivalent entry on an inf section to uninstall inf files that is similar to SetupUninstallOEMInf function?

I found this solution using SetupUninstallOEMInf but it does not seems suitable to me.

share|improve this question

Well it depends on the .inf file (some may not have un-installation function at all), but you could always try one of the following:

rundll32 setupapi.dll,InstallHinfSection DefaultUninstall 132 <driver.inf>

rundll32 advpack.dll,LaunchINFSection <driver.inf>,UnInstall

rundll32 syssetup.dll,SetupInfObjectInstallAction Uninstall.NT 4 <driver.inf>

(Of course, replace the filename, including quotes as necessary.)

share|improve this answer
Right, but I didn't find any entry that explicitly remove oemXX.inf generated by CopyInf entry. I am able to remove *.sys files that was copied to %SystemRoot%\System32\drivers with CopyFiles entry. There is Delfiles entry but only works when I know which files I need to remove. – coelhudo Jul 26 '12 at 21:29
Are you asking about oem*.inf being automatically removed from \Windows\INF? I have never seen that happen, especially with things that are installed via .inf files instead of .exe or .msi installers. You could open them in a text-editor and delete the one(s) that no longer apply. – Synetech Jul 26 '12 at 21:33
Yeap, I need this to be integrated into a NSIS (the installer from nullsoft) script. It has to be executed automatically when my app is uninstalled. – coelhudo Jul 26 '12 at 21:47
Ah, I see. Well if you are writing your own (un)installer, then just add a line to delete the .inf file. You can query the InfPath value of the device in question under the HKLM\SYSTEM\ControlSet001\Control\Class registry branch to find out what the oem*.inf filename is for it. – Synetech Jul 27 '12 at 0:22
Are you sure the device was installed? Are you sure there is an oem*.inf file? Do a search in \Windows\inf` for oem*.inf` files taht contain the device name (or just check them all in notepad if there’s only a few). – Synetech Jul 27 '12 at 22:11

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .