Обновление-Выключение-Запуск. Всё работает пока обновление заключается лишь в замене myfile.ext на myfile.ext. Возьмите чуть более сложную схему обновления, включающую изменение архитектуры хранения файлов (напр. цветовые профили для видеоадаптера, ..), переход с ini-файла настроек на хранение их в реестре (с удалением ini-файлов) - и вы не сможете в общем случае ГАРАНТИРОВАТЬ работоспособность.Немножко о драйверах в Windows для крестьян: есть PDO (Physycal Device Object - железка) и FDO (Filter Device Object - фильтр = программа обработки данных с железки ИЛИ от другого FDO). На каждый PDO может быть десятки FDO. От PDO поступили данные (напр. на сетевую карту пришли байты), самый первый FDO обработал их, упаковал в структуру и передал следующим FDO, они следующим, они следующим. Есть уровни и FDO может решить на какой уровень она хочет встать (надо указать уровень, в начало или в конец списка вызовов мы хотим добавить наше FDO). Уровней много и они заранее определены разработчиками ОС. Если драйвера на каком-то уровне нет - вызов передаётся следующему уровню. Это (то что их много) позволяет быстро наращивать функциональность и приспосабливаться к изменению аппаратуры и протоколов без изменения API. "Драйвер" - это файл driver.sys, который может зарегестрировать любое количество FDO, может ни одного, может 1000. Вы можете ГАРАНТИРОВАТЬ что перезапуск driver.sys не нарушит работу других FDO? Напр. брандмауэр привык получать данные с FDO, следующего сразу за железкой (драйвер сетевой карты), если его убрать, брандмауэр получит данные напрямую с железки.
|