Как выгрузить драйвер Windows?

Как выгрузить драйвер Windows?

Я ищу решение для командной строкиостановить драйвер 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кстати, я пользовался).

Связанный контент