Как Windows 10 определяет, должно ли обновление драйвера вызывать перезагрузку?

Как Windows 10 определяет, должно ли обновление драйвера вызывать перезагрузку?

Я использую 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

Перезапуск потребуется только в том случае, если файл, требуемый драйвером, открыт и заблокирован и не может быть заменен, поскольку он в данный момент используется и не может быть освобожден программным обеспечением, использующим его.

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

Предполагается, что драйвер устройства может полностью инициализировать устройство, которым он управляет, из любого случайного состояния, в котором оно может находиться после перезагрузки, спящего режима системы или цикла питания. Если полный цикл питания не будет выполнен, устройство будет находиться в почти идентичном состоянии после перезагрузки, поскольку драйвер выгружается, поэтому работа, которая должна быть выполнена, будет той же самой.

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