我正在寻找一个命令行解决方案停止 Windows 驱动程序这是我手动安装的。
安装过程如下:
sc create MyDrv type= kernel start= demand binPath= "C:\MyDrv.sys"
net start MyDrv
查询驱动程序输出的信息:
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
这个NOT_STOPPABLE
标志似乎是一个巨大的迹象,表明我想要完成的事情无法完成。然而,这个驱动程序属于一个应用程序,当我从我的电脑上卸载该应用程序时,它会停止并删除它。那么,我有什么办法可以杀死这个混蛋?(不幸的是,我没有驱动程序的源代码)。
如果你想知道,是的,我尝试过:
C:\>net stop MyDrv
The requested pause or stop is not valid for this service.
More help is available by typing NET HELPMSG 2191.
答案1
如果
它是一个实际的驱动程序而不是服务
,并且
您可以在设备管理器中毫无问题地禁用/启用它,
那么
您可能可以使用“Devcon”批量禁用和启用它以及 cmd 提示。
否则,
如果它是一项服务,那么最好知道实际的服务名称,如服务属性中所示。
对于
带有驱动程序的服务,禁用驱动程序可能比禁用服务更容易。
抱歉,我被代码搞糊涂了 :-) 这听起来像是一个真正的难题,可能需要在注册表中为其设置不同的内容,或者比我在这里的帖子更好地理解它。
找到适合 64 位的 devcon 并不容易,操作系统或位错误的版本根本不起作用,所以如果你尝试 devcon,你必须有适合确切系统的正确版本,而你没有透露这一点。
它真的叫做 Mydrv 吗?因为了解实际名称或产品可能会有所帮助,为了获得答案而混淆驱动程序在这里可能没什么用。
答案2
安装它的应用程序可能正在调用驱动程序中的特殊功能或向其发送精心制作的消息以告诉它正常关闭。
答案3
使用线路
devcon remove full_drivername_and_path
例如
devcon remove root\kmdfHelloWorld
它对我有用(我用过devcon install
BTW)。