Обновление драйвера KMDF без перезагрузки Windows

Недавно я написал драйвер KMDF для Windows с помощью Visual Studio. Затем я приступил к локальной установке драйвера в тестовом режиме (например, devcon install driver.inf hwid). Круто, так что драйвер работает, и я вижу, как обратные вызовы драйвера срабатывают в Dbgview.exe.

Но теперь у меня есть ошибка в моем драйвере. Итак, я пишу код, собираю новый драйвер и теперь хочу его перезапустить. Поэтому я пытаюсь использовать devcon для обновления моего нового драйвера. Однако при этом devcon напоминает мне, что мне нужно выполнить перезагрузку системы, чтобы изменения вступили в силу. Это действительно болезненно для отладки новой версии драйвера (пожалуйста, не предлагайте использовать виртуальную машину или удаленную целевую машину, меня это решение не интересует).

Можно ли как-то обновить драйвера без перезагрузки Windows?

Обратите внимание: я вижу, что для моего драйвера работает «Служба драйверов», но я не могу ее остановить. Интересно, не мешает ли эта служба мне обновить драйвер?


person Tr1gZer0    schedule 19.10.2019    source источник


Ответы (1)


Поскольку вы устанавливаете свой драйвер через DevCon, используя файл INF, драйвер является PnP. В отличие от устаревших драйверов, драйверы PnP нельзя остановить напрямую. Вам нужно отключить все устройства, управляемые драйвером, и PnP Manager автоматически выгрузит драйвер.

Чтобы отключить устройство, вы можете использовать соответствующую команду DevCon или сделать это в диспетчере устройств.

person Eugene Muzychenko    schedule 19.10.2019
comment
Отличное начало. Однако при попытке отключить устройство я получаю всплывающее окно с просьбой перезапустить Windows, чтобы отключить устройство. Есть ли способ отключить устройство без необходимости перезагрузки? Я имею в виду, что я написал драйвер, и если там что-то должно измениться, то мне любопытно, что это может быть. В противном случае имело бы смысл загружать мой драйвер другим способом? - person Tr1gZer0; 19.10.2019
comment
Думаю, я нашел ответ здесь: docs.microsoft.com/en-us/windows-hardware/drivers/kernel/ - person Tr1gZer0; 19.10.2019