Driver Uninstall: DIF_REMOVE does not remove the Service Key

Hi All,

I have a setup application to install/uninstall my driver. The setup app
calls SetupDiCallClassInstaller with DIF_REMOVE to uninstall the driver.
This works fine and the driver is uninstalled. However, the service key
[HKLM/System//CCS/Services/] is not deleted, neither is the sys
file removed from the system32/drivers dir. This is not a problem as such
but I would like to leave the system cleaner after uninstall :slight_smile:

I have following questions:

1> Is this the expected behavior? If so, any idea why is it designed this
way?

2> Can I program my setup application to delete the service key as well as
the sys file explicitly after uninstall? Is it safe?

3> Should the delete of the service key and the sys file be done in a device
co-installer instead of setup app?

4> My driver doesnโ€™t support unload (this is by design, and I have to live
with it for now), so even though the uninstall is successful, the driver is
actually removed at the next reboot. In this case, if I have to delete the
service key and the sys file, how do I achieve it?

TIA,
Bandeep