SERVICE_CONTROL_NETBINDREMOVE | Компонент для соединения был удален. Необходимо заново считать информацию соединения и отсоединиться от удаленного компонента. |
SERVICE_CONTROL_NFTBINDENABLED | Ранее отключенное соединение снова включено. |
SERVICE_CONTROL_NETBINDDISABLE | Ранее включенное соединение теперь отключено. |
Если служба использует соединение, необходимо заново прочитать информацию соединения и удалить соединения, которые стали недоступными. Служба реагирует на сетевые изменения, поэтому перезагрузка не требуется.
Windows 2000 добавляет также увеличенную поддержку управления электропитанием. Существует поддержка для перевода системы в нерабочее состояние — память записывается на диск, поэтому возможна более быстрая начальная загрузка системы. Также возможно временно остановить машину, чтобы сократить потребление электроэнергии, при этом система в случае необходимости автоматически пробуждается.
Для всех событий электропитания служба получает управляющий код SERVICE_CONTROL_POWEREVENT
с дополнительными параметрами. В параметре отражена причина события. Код причины может говорить о разряженности батареи, о том, что система переходит в приостановленное состояние, или об изменении статуса электропитания. В зависимости от кода причины служба должна замедлить скорость, приостановить фоновые потоки выполнения, закрыть сетевые соединения, закрыть файлы и т.д.
Классы в пространстве имен System.ServiceProcess
также имеют поддержку для этих свойств Windows 2000 Служба конфигурируется так, чтобы она реагировала на события паузы и продолжении с помощью свойства CanPauseAndContinue
, и задается свойство для управления электропитанием: CanHandlePowerEvent
. Службы Windows 2000, которые управляют электропитанием, регистрируются в SCM с помощью метода API Win32 RegisterServiceCtrlHandlerEx()
.
Задавая значение CanHandlePowerEvent
как True
, метод
protected virtual bool OnPowerEvent(PowerBroadcastStatus power Status);
будет вызываться, как только изменится статус электропитания. Некоторые из значений, получаемые из PowerBroadcastStatus
, перечислены ниже в таблице:
Значение powerStatus | Описание |
---|---|
BatteryLow | Слабый заряд батареи. Необходимо сократить функционирование службы до минимума. |
PowerStatusChange | Произошло переключение электропитания от батареи на внешний источник, или мощность батареи опустилась ниже допустимого значения и т.д. |
QuerySuspend | Полномочия системных запросов перешли в приостановленный режим. Можно отказаться от полномочий или приготовиться к переходу в приостановленный режим, закрывая файлы, разъединяя сетевые соединения и т.д. |
QuerySuspendFailed | Переход в приостановленный режим был отвергнут системой. Можно продолжать с той же функциональностью. |
Suspend | Никто не отменил запрос перехода в приостановленный режим. Система скоро будет приостановлена. |
Восстановление
Автоматическое восстановление является вопросом конфигурации, оно используется для всех свойств выполняющихся в системе Windows 2000. Если процесс службы разрушается, то служба автоматически запускается снова или конфигурируется специальный файл, или автоматически перезагружается вся система. Обычно существует причина разрушения службы, и нежелательно автоматически непрерывно перезагружать систему, поэтому нужно разнообразить ответы на первую, вторую и последующие ошибки.

Приложения COM+ в роли служб
Начиная с Windows ХР (кодовое имя Whistler), приложение COM+ выполняется как служба. В Windows ХР служба имеет прямой доступ к таким службам COM+, как транзакции, пулы объектов, пулы потоков выполнения и т.д. Если желательно использовать службы COM+ в Windows 2000 как службы Windows, то создаются два отдельных приложения: одно имеет дело с функциями службы, а второе — со службами COM+. Это нам дает некоторые преимущества:
□ Легче создать служебное приложение. Нам не нужно больше иметь дело со специальной установкой службы, так как это выполняется прямо из конфигурации COM+.
□ Приложение COM+ может действовать как служба. Оно автоматически запускается во время начальной загрузки, имеет права учетной записи System и реагирует на управляющие коды службы, которые посылаются из управляющей программы службы.
□ Служебное приложение, создаваемое как приложение COM+, имеет прямой доступ к таким