Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Существуют значительные изменения в модели служб для повышения производительности, надежности, безопасности, управления и администрирования служб.
В следующей таблице приведены улучшения служб для Windows Vista.
Повышение | Описание |
---|---|
задержка автоматического запуска |
Службы автозапуска отложены вскоре после запуска системы. Это повышает производительность запуска системы, обеспечивая автоматическое запуск для этих служб. Чтобы задать отложенный флаг автоматического запуска, вызовите функцию ChangeServiceConfig2 с SERVICE_CONFIG_DELAYED_AUTO_START_INFO. |
обнаружение сбоев и восстановление |
Если служба завершается ошибкой, диспетчер управления службами (SCM) может выполнить действие сбоя, например перезапуск службы в попытке восстановиться после этого сбоя. Чтобы настроить действие сбоя, вызовите ChangeServiceConfig2 с SERVICE_CONFIG_FAILURE_ACTIONS. |
уведомления предварительной отмены |
Служба может зарегистрироваться для получения уведомления SERVICE_CONTROL_PRESHUTDOWN в его функции HandlerEx, прежде чем получать фактическое уведомление о завершении работы. Это обеспечивает службы с длительной процедурой завершения работы больше времени, чтобы завершить работу корректно. Чтобы задать значение времени ожидания, вызовите ChangeServiceConfig2 с SERVICE_CONFIG_PRESHUTDOWN_INFO. |
ограниченный сетевой доступ |
С помощью идентификаторов служб можно ограничить доступ к портам, протоколам или направлению сетевого трафика. Чтобы ограничить доступ службы к сети, используйте интерфейс INetFwServiceRestriction. |
выполнение с минимальными привилегиями |
Службы могут выполняться под любой учетной записью, содержащей необходимые привилегии (LocalService, NetworkService, LocalSystem, учетная запись домена или локальную учетную запись) и указывать необходимые привилегии, вызвав ChangeServiceConfig2 с SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO. SCM удаляет какие-либо привилегии, которые не требуются. |
изоляция службы |
Служба может изолировать объекты, такие как файлы или разделы реестра, для его монопольного использования путем защиты их с помощью записи управления доступом, содержащей идентификатор безопасности службы. После назначения этому идентификатору безопасности службе владелец службы может изменить списки управления доступом объектов для предоставления доступа к идентификатору безопасности. Это позволяет службе получать доступ к определенным объектам, не выполняясь под учетной записью с высоким уровнем привилегий или уменьшая безопасность объектов. Чтобы задать идентификатор безопасности службы, вызовите ChangeServiceConfig2 с SERVICE_CONFIG_SERVICE_SID_INFO. |
Уведомления об изменении состояния службы |
Службы могут регистрироваться, чтобы получать уведомления при создании, удалении или изменении состояния с помощью функции NotifyServiceStatusChange. Это более эффективно, чем вызов функции QueryServiceStatusEx в цикле для опроса состояния. |
изоляция сеанса 0 |
Службы всегда выполняются в сеансе 0. Перед Windows Vista первый пользователь для входа также был назначен сеансу 0. Теперь сеанс 0 зарезервирован исключительно для служб и других приложений, не связанных с интерактивным сеансом пользователя. (Первый пользователь для входа подключен к сеансу 1, второй пользователь для входа подключен к сеансу 2 и т. д.) Сеанс 0 не поддерживает процессы, взаимодействующие с пользователем. Это изменение означает, что служба не может публиковать или отправлять сообщение в приложение, а приложение не может отправлять или публиковать сообщение в службу. Кроме того, службы не могут отображать элемент пользовательского интерфейса, например диалоговое окно напрямую. Служба может использовать функцию WTSSendMessage для отображения диалогового окна в другом сеансе. |