[wdmaudiodev] Uninstalling device with setupAPI

  • From: "Evert van der Poll" <e.j.van.der.poll@xxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Fri, 12 Sep 2003 14:04:51 +0200

Hi,

I'm working on an installer for my device driver and ran into a funny little
problem. I modified some sample code from the DDK and incorporated that into
an MFC project because I need some GUI stuff as well. This means that it's
built with the standard Visual Studio build environment with it's compiler
and linker.

The resulting application compiles and links fine. I can install my device
and also uninstall it. The problem is that once I have uninstalled it there
is no way I can install it again. The installer returns the errorcode 2 (=
The system cannot find the file specified). Only after a reboot is it
willing to install again.

The funny thing is that the same code, when compiled and linked with the DDK
build environment doesn't show this behaviour. I can install and uninstall
as much as I like without having to reboot.

It is not a file locking problem. Neither the INF file, nor the driver files
are locked after I use my own uninstaller. Also it makes no difference if I
remove the oemx.inf and oemx.pnf files from C:\WinNT\inf and remove the
driver file from C:\WinNT\sytem32\drivers.

As far as I can tell all the registry stuff is removed after the deinstall.

After days of frustrated troubleshooting (rebooting many times) I got the
idea to put the installer/uninstaller code into a separate library and build
that in the DDK environment. A test application, using this lib, uninstalled
the device without the locking problem. So I thought I had found the
solution.
Only thing is when I try to build my MFC project, linking with this
uninstaller lib, I get linker errors. The linker tells me it can't find the
functions. Of course the lib file is in the path. If I link with progress
messages on it tells me that it finds the library, but not the functions. Is
this some name mangling problem?

I feel quite desperate at the moment. Does anyone have any tips to get me
out of the wood?

Thanks


Evert

Other related posts: