Hi All,
I have a WDM driver to access some ports and read data from it.
Previously we load the driver from our application dynamically and
unload it after use. Now I'm going for WHQL signing for our driver so
I'm installing my driver using an INF under sample class. The driver
is getting installed and the service also starts running. The problem
is during uninstall, the system asks for reboot to complete uninstall
process. I want to avoid reboot as it is not recommended on Server
2008 OS. During unisntall, the following error is logged in the file
"setupapi.dev" in INF folder.
dvi: {Remove DEVICE}
dvi: InstanceID = 'ROOT\CMOSDRV\0000'
dvi: Devnode Status = 0x0180340b
dvi: CM_Query_And_Remove_Subtree_Ex returns
0x00000017
dvi: Devnode Status after
CM_Query_And_Remove_Subtree_Ex = 0x0180340b
! dvi: Query-removal was vetoed by ROOT\CMOSDRV\0000
(veto type 1: PNP_VetoLegacyDevice)
! dvi: Setting needs reboot
! dvi: Query-and-Remove failed: 0x17:
CR_REMOVE_VETOED.
dvi: {Delete DEVICE}
dvi: Device Instance uninstalled.
dvi: {Delete DEVICE exit (0x00000000)}
dvi: {Remove DEVICE exit (0x00000000)}
After some analysis, I found that the error CR_REMOVE_VETOED occurs if
driver is associated by a service or application. So when i gave the
command "sc stop CmosDrv" the driver cannot be stopped and it displays
the following error:
[SC] ControlService FAILED 1052:
The requested control is not valid for this service.
What might be the reason for Driver not stopping ? Any idea on this
would be helpful as I'm new to the Driver thing.
Thanks in Advance
|