Использование установщика Windows с диспетчером перезапуска
Приложения, использующие установщик Windows 4.0 для установки и обслуживания в Windows Vista, автоматически используют диспетчер перезапуска для сокращения перезапуска системы. Поведение по умолчанию в Windows Vista заключается в том, чтобы завершать работу приложений, а не завершать работу и перезапускать операционную систему, когда это возможно. В случаях, когда перезапуск системы неизбежен, установщики могут использовать API Диспетчера перезапусков для планирования перезапуска таким образом, чтобы это свести к минимуму прерывание рабочего процесса пользователя.
Разработчики установщика Windows могут выполнить следующие действия, чтобы подготовить свой пакет к работе с диспетчером перезапуска.
Добавьте диалоговое окно MsiRMFilesInUse в пакет. Если диалоговое окно MsiRMFilesInUse присутствует в пакете, пользователю Windows Vista, выполняющего установку на уровне пользовательского интерфейса полного пользовательского интерфейса, предоставляется возможность автоматического закрытия и перезапуска приложений. Пакет установки может содержать сведения как для диалогового окна MsiRMFilesInUse, так и для диалогового окна FilesInUse . Диалоговое окно MsiRMFilesInUse отображается только в том случае, если пакет установлен с установщиком Windows 4.0 в Windows Vista и в противном случае игнорируется. Существующие пакеты, в которых нет диалогового окна MsiRMFilesInUse, продолжают работать с помощью диалогового окна FilesInUse. Преобразование настройки можно использовать для добавления диалогового окна MsiRMFilesInUse в существующие пакеты.
Конечные пользователи обычно выполняют установку на уровне пользовательского интерфейса полного пользовательского интерфейса. Установка базового пользовательского интерфейса или уменьшенного уровня пользовательского интерфейса дает пользователю возможность использовать диспетчер перезапусков для сокращения перезапусков системы, даже если диалоговое окно MsiRMFilesInUse отсутствует. Автоматическая установка на уровне пользовательского интерфейса всегда завершает работу приложений и служб, а в Windows Vista всегда используется диспетчер перезапуска.
Зарегистрируйте приложения для перезапуска с помощью функции RegisterApplicationRestart . Диспетчер перезапуска может перезапускать только приложения, которые были зарегистрированы для перезапуска. Диспетчер перезапуска перезапускает зарегистрированные приложения после установки. Если для установки требуется перезагрузка системы, диспетчер перезапуска перезапускает зарегистрированное приложение после перезапуска системы.
Укажите INSTALLLOGMODE_RMFILESINUSE при включении внешнего обработчика пользовательского интерфейса с помощью функций MsiSetExternalUI и MsiSetExternalUIRecord . Установщик Windows отправит INSTALLMESSAGE_RMFILESINUSE сообщение для внешних обработчиков пользовательского интерфейса, поддерживающих диспетчер перезапуска. Если ни один зарегистрированный или внутренний пользовательский интерфейс не обрабатывает сообщение INSTALLMESSAGE_RMFILESINUSE, установщик отправляет INSTALLMESSAGE_FILESINUSE сообщение для обработчиков пользовательского интерфейса, поддерживающих диалоговое окно FilesInUse . Дополнительные сведения см. в статье Использование диспетчера перезапуска с внешним пользовательским интерфейсом.
Пользовательские действия могут добавлять ресурсы, принадлежащие сеансу диспетчера перезапуска . Настраиваемое действие должно быть упорядочено перед действием InstallValidate . Пользовательские действия могут использовать свойство MsiRestartManagerSessionKey для получения ключа сеанса и должны вызывать функции RmJoinSession и RmEndSession API диспетчера перезапуска. Пользовательские действия не могут удалять ресурсы, принадлежащие сеансу диспетчера перезапуска. Пользовательские действия не должны пытаться завершить работу или перезапуск приложений с помощью функций RmShutdown, RmGetList и RmRestart .
Авторы пакетов могут основывать условие в таблице LaunchCondition на свойстве MsiSystemRebootPending , чтобы предотвратить установку пакета при ожидании перезагрузки системы.
Авторы и администраторы пакетов могут управлять взаимодействием установщика Windows и диспетчера перезапуска с помощью свойств MSIRESTARTMANAGERCONTROL, MSIDISABLERMRESTART, MSIRMSHUTDOWN и политики DisableAutomaticApplicationShutdown .
Приложения и службы должны соответствовать рекомендациям, описанным в разделе Использование диспетчера перезапуска документации по диспетчеру перезапусков .