Crash during uninstallation

Hi All,

I have made a product which along with other things installs a FileSpy kind
of filter driver with the driver registry entries done manually (Driver is
also manually copied to SYSTEMFOLDER\drivers).

I am using INSTALLSHIELD 11.5 for this.
Along with this, it is also having some Win32 DLLs and executables which are
having some dependencies on MFC80.dll, MSVCR80.dll and some other modules.
For this, i have merged these modules into my installer.

During uninstallation I first remove the registry entries for filterdriver
and the driver and then do the uninstallation of rest using the same setup.

Although all this working fine on WinXP, there is a problem coming in case
of Windows 2000 (Only With FAT32 as the format of installation partition).

On Win 2000 (FAT32), when i uninstall it, my filter driver crashes.
When i remotely tried to debug it, it shows that my Driver is the culprit
and the statement where it crashes is the Return statement of SpyDispatch
(In FileSpy).

Next time when i try to uninstall it, it shows an error and after doing same
thing for 2-3times, uninstallation shows “Fatal Error” permanently.

One noticable thing, while doing uninstallation is that it crashes while
Removing Files. When i stopped the “RemoveFile” action in my installer, it
works absolutely fine.
But in this case it will not remove the files installed by installer.

The files which were Installer\uninstalled by installer were:

My Exes
My DLLs

Except for this there were certain Merged modules needed for my DLLs and
Exes. These are:

RemoveFiles: File:
x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_0de06acd.manifest,
Directory: D:\WINNT\winsxs\Manifests\
RemoveFiles: File:
x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_0de06acd.cat,
Directory: D:\WINNT\winsxs\Manifests\
RemoveFiles: File: msvcr80.dll, Directory:
D:\WINNT\winsxs\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_0de06acd\
RemoveFiles: File: msvcp80.dll, Directory:
D:\WINNT\winsxs\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_0de06acd\
RemoveFiles: File: msvcm80.dll, Directory:
D:\WINNT\winsxs\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_0de06acd\
RemoveFiles: File: msvcr80.dll, Directory: D:\WINNT\system32\
RemoveFiles: File: msvcp80.dll, Directory: D:\WINNT\system32\
RemoveFiles: File: msvcm80.dll, Directory: D:\WINNT\system32\
RemoveFiles: File: 8.0.50727.42.policy, Directory:
D:\WINNT\winsxs\Policies\x86_policy.8.0.Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_x-ww_77c24773\
RemoveFiles: File: 8.0.50727.42.cat, Directory:
D:\WINNT\winsxs\Policies\x86_policy.8.0.Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_x-ww_77c24773\
RemoveFiles: File:
x86_Microsoft.VC80.MFC_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_dec6ddd2.manifest,
Directory: D:\WINNT\winsxs\Manifests\
RemoveFiles: File:
x86_Microsoft.VC80.MFC_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_dec6ddd2.cat,
Directory: D:\WINNT\winsxs\Manifests\
RemoveFiles: File: mfcm80.dll, Directory:
D:\WINNT\winsxs\x86_Microsoft.VC80.MFC_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_dec6ddd2\
RemoveFiles: File: mfc80u.dll, Directory:
D:\WINNT\winsxs\x86_Microsoft.VC80.MFC_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_dec6ddd2\
RemoveFiles: File: mfc80.dll, Directory:
D:\WINNT\winsxs\x86_Microsoft.VC80.MFC_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_dec6ddd2\
RemoveFiles: File: mfcm80u.dll, Directory:
D:\WINNT\winsxs\x86_Microsoft.VC80.MFC_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_dec6ddd2\
RemoveFiles: File: mfcm80.dll, Directory: D:\WINNT\system32\
RemoveFiles: File: mfc80u.dll, Directory: D:\WINNT\system32\
RemoveFiles: File: mfc80.dll, Directory: D:\WINNT\system32\
RemoveFiles: File: mfcm80u.dll, Directory: D:\WINNT\system32\
RemoveFiles: File: 8.0.50727.42.policy, Directory:
D:\WINNT\winsxs\Policies\x86_policy.8.0.Microsoft.VC80.MFC_1fc8b3b9a1e18e3b_x-ww_0f75c32e\
RemoveFiles: File: 8.0.50727.42.cat, Directory:
D:\WINNT\winsxs\Policies\x86_policy.8.0.Microsoft.VC80.MFC_1fc8b3b9a1e18e3b_x-ww_0f75c32e\

Now my question is that, in this case is my filter driver the actual culrit
or the Installer (InstallShield 11.5). What i believe is that there might be
some dependency of my Driver on these merged modules because of which is
crashes.

One more thing, when i install my filter driver using the batch file and
then install my Product (with installation of filter driver not included in
InstallShield’s installer), it works absolutely fine during uninstallation.

Please help me in this.

Thanks and Regards,
Shreshth Luthra

You cannot uninstall legacy filter driver wihtout rebooting.
That’s a dogma. Your case is exactly one of the possible
consequences :slight_smile:

L.

Hi Ladislav,

Thanks for the reply. In my case, i am doing uninstallation by writing a
custom action which simply deletes the registry entries and the sys file.
Even when i removed this custom action from the uninstall sequence, it is
doing the same thing (It crashes).

And to add to it, when i make a simple setup which install and uninstalls
the filter driver (Simply add the registry entry and sys file during
installation and other way during uninstallation in custom actions), it
works absolutely fine.

The only relation my Win32 service is having with the filter driver is that
it sends some IOCTLS to my filter driver (For starting the logging, updating
certain parameters etc).
Even intentionally i do not want to unload my filter driver prior to restart
after uninstallation.

Regards,
Shreshth

On 8/25/06, Ladislav Zezula wrote:
>
> You cannot uninstall legacy filter driver wihtout rebooting.
> That’s a dogma. Your case is exactly one of the possible
> consequences :slight_smile:
>
> L.
>
>
> —
> Questions? First check the IFS FAQ at
> https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as: unknown lmsubst tag argument: ‘’
>
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>