Есть ли способ заставить Windows перезагрузить драйвер без перезагрузки? - PullRequest
5 голосов
/ 03 марта 2011

Мне было интересно - как разработчики драйверов для Windows сами себя тестируют?

Допустим, я отлаживаю неприятную проблему в драйвере, который я написал. Я хочу иметь возможность постоянно добавлять следы и журналы, изменять небольшие части кода и т. Д.

Каждый раз, когда я собираю версию своего драйвера и получаю файл .sys, я хочу развернуть его на тестовой машине и взглянуть на инструмент типа dbgview, чтобы понять, что происходит. AFAIK, чтобы изменения в коде имели место, единственный способ - перезагрузить тестовый сервер.

Это ужасно! Это означает, что мне придется долго ждать между незначительной корректировкой кода и существованием.

Это действительно так? Нет ли способа сообщить Windows, чтобы динамически перезагрузить мой драйвер?

Если нет - как работают разработчики драйверов для Windows? Они постоянно перезагружают свои тестирующие серверы, чтобы посмотреть, сработало ли у них?

Ответы [ 3 ]

3 голосов
/ 20 января 2014

Вы также можете отключить / включить хост-контроллер в диспетчере устройств.

2 голосов
/ 07 марта 2011

Мы используем виртуальные машины для тестирования и отладки драйверов.Возврат к моментальному снимку происходит намного быстрее, чем перезагрузка, и дает вам всегда одинаковую среду.

Также вы можете остановить и заменить драйвер, если он поддерживает выгрузку: отключите устройство в диспетчере устройств или остановите драйвер с помощью sc stop service_name.

1 голос
/ 13 августа 2015

Это помогает мне:

devcon disable <driver>
devcon enable <driver>

Devcon скачать здесь: http://support.microsoft.com/kb/311272

...