Estoy buscando una solución de línea cmd paradetener un controlador de Windowsque había instalado manualmente.
El procedimiento de instalación fue el siguiente:
sc create MyDrv type= kernel start= demand binPath= "C:\MyDrv.sys"
net start MyDrv
Consulta de información sobre las salidas del controlador:
C:\>sc query MyDrv
SERVICE_NAME: MyDrv
TYPE : 1 KERNEL_DRIVER
STATE : 4 RUNNING
(NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
La NOT_STOPPABLE
bandera parece un gran indicador de que lo que intento lograr no se puede hacer.Sin embargo, este controlador pertenece a una aplicación que logra detenerlo y eliminarlo cuando desinstalo la aplicación de mi PC. Entonces, ¿hay alguna manera de matar a este bastardo? (Desafortunadamente no tengo el código fuente del controlador).
Si te lo estás preguntando, sí, lo intenté:
C:\>net stop MyDrv
The requested pause or stop is not valid for this service.
More help is available by typing NET HELPMSG 2191.
Respuesta1
SI
es un controlador real, no un servicio
, y
puede deshabilitarlo/habilitarlo en el administrador de dispositivos sin problemas,
entonces
probablemente podría usar "Devcon" para deshabilitarlo y habilitarlo en lotes y mensajes de cmd.
De lo contrario
, si se trata de un servicio, es bueno saber el nombre real del servicio, como se ve en las propiedades del servicio.
Para
los servicios con controladores, deshabilitar el controlador puede resultar más fácil que deshabilitar el servicio.
Lo siento, me confundí con el código :-) Esto suena realmente complicado, lo que podría requerir configurar algo diferente en el registro o comprenderlo mucho mejor que mi publicación aquí.
Encontrar devcon adecuado para 64 bits no es fácil, y las versiones incorrectas para el sistema operativo o los Bits no funcionan en absoluto, por lo que si prueba devcon, debe tener la correcta para el sistema exacto, que no reveló.
¿Realmente se llama Mydrv? Debido a que puede ser útil conocer cualquier nombre o producto real, ofuscar (sp) el controlador con el fin de obtener respuestas probablemente no sea útil aquí.
Respuesta2
La aplicación que lo instaló probablemente esté llamando a una función especial en el controlador o enviándole un mensaje cuidadosamente elaborado para indicarle que se apague correctamente.
Respuesta3
usa la linea
devcon remove full_drivername_and_path
p.ej
devcon remove root\kmdfHelloWorld
Funcionó para mí (usé devcon install
por cierto).