
Я использую Windows 10. В моем Device Manager
, у меня есть несколько Device Firmware
перечисленных под Firmware
узлом.
Я создал для них фиктивный драйвер прошивки устройства.
Затем я назначаю фиктивному драйверу номер версии, скажем, 0.0.0.1. Затем я использую его для обновления прошивки одного из моих устройств. Система предлагает мне перезапуститься.
После перезагрузки в Windows я вижу, что мой драйвер работает, а его версия — 0.0.0.1.
Затем я назначаю этому же фиктивному драйверу более высокий номер версии, скажем, 0.0.0.2. И заново обновляю прошивку устройства.
Но на этот раз система не предлагает мне перезагрузиться.
И я попробовал понизить версию до 0.0.0.1. Все равно нет перезапуска.
А в журнале событий -> Система я вижу что-то вроде этого:
Управление драйверами завершило процесс установки драйвера ... со следующим статусом: 0x0.
И
Устройство ... было настроено.
Водители, лидирующие в рейтинге: ...
Когда я меняю драйверы, они просто продолжаютпревосходстводруг друга без перезагрузки.
Я не уверен, что outrank
здесь имеется в виду. Я ожидал, что каждый раз, когда яизменятьверсии драйвера, может потребоваться перезагрузка.
Так почему же нет перезагрузки?
решение1
Перезапуск потребуется только в том случае, если файл, требуемый драйвером, открыт и заблокирован и не может быть заменен, поскольку он в данный момент используется и не может быть освобожден программным обеспечением, использующим его.
Если устройство можно выключить и выгрузить без необходимости в программах для снятия любых блокировок, которые они имеют на устройстве, то нет смысла перезагружать его. Он может просто выгрузить текущий драйвер, заменить его новым, а затем загрузить новый драйвер.
Предполагается, что драйвер устройства может полностью инициализировать устройство, которым он управляет, из любого случайного состояния, в котором оно может находиться после перезагрузки, спящего режима системы или цикла питания. Если полный цикл питания не будет выполнен, устройство будет находиться в почти идентичном состоянии после перезагрузки, поскольку драйвер выгружается, поэтому работа, которая должна быть выполнена, будет той же самой.