Я ищу решение для командной строкиостановить драйвер 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" для отключения и включения его в пакетном режиме и командных строках.
В противном случае,
если это служба, то хорошо знать фактическое имя службы, как показано в свойствах службы.
Для
служб с драйверами отключение драйвера может оказаться проще, чем отключение службы.
извините, я запутался в коде :-) Похоже, эта штука действительно липкая, и для этого может потребоваться что-то другое в реестре или понимание ее гораздо лучше, чем я написал здесь.
Найти подходящий devcon для 64 бит непросто, а неправильные версии для ОС или битов вообще не работают, так что если вы попробуете devcon, у вас должен быть правильный для конкретной системы, который вы не раскрыли.
Он действительно называется Mydrv? Потому что, возможно, будет полезно узнать его настоящее название или продукт, а вот запутывание драйвера с целью получения ответов здесь, вероятно, бесполезно.
решение2
Приложение, установившее его, вероятно, вызывает специальную функцию в драйвере или отправляет ему тщательно составленное сообщение, чтобы сообщить о необходимости корректного завершения работы.
решение3
Используйте линию
devcon remove full_drivername_and_path
например
devcon remove root\kmdfHelloWorld
У меня это сработало ( devcon install
кстати, я пользовался).