На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

The Control Handler Function



Each service has a control handler, the Handler function, that is invoked by the control dispatcher when the service process receives a control request from a service control program. Therefore, this function executes in the context of the control dispatcher.

Whenever the Handler function is invoked, the service must call the SetServiceStatus function to report its status to the SCM. This must be done regardless of whether the status changed.
The service control program send control requests using the ControlService function. All services must accept and process the SERVICE_CONTROL_INTERROGATE control code. You can enable or disable acceptance of the other standard control codes by calling SetServiceStatus. Services can also handle additional user-defined control codes.

The control handler must return within 30 seconds, or the SCM will return an error. If a service needs to do lengthy processing when the service is executing the control handler, it should create a secondary thread to perform the lengthy processing, then return. This prevents the service from tying up the control dispatcher. For example, when handling the stop request for a service that will take a long time, create another thread to handle the stop process. The control handler should simply call SetServiceStatus with the SERVICE_STOP_PENDING message and return.

When the user shuts down the system, all control handlers receive the SERVICE_CONTROL_SHUTDOWN control code. They are notified in the order that they appear in the database of installed services. By default, a service has approximately 20 seconds to perform cleanup tasks before the system shuts down. However, if the system is left in the shutdown state (not restarted or powered down) the service continues to run. You can change the time the system will wait for service shutdown by modifying the WaitToKillServiceTimeout value in the following registry key:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
For more information, see Writing a Control Handler Function.


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

Управляющая Функция Вручителя



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

Всякий раз, когда функция Вручителя введена, услуга должна назвать функцию SetServiceStatus, чтобы сообщать свой статус на SCM. Это должно быть сделано независимо от того, что статус изменялся.
Управляющая программа услуги посылает управляющие просьбы, использовавшие функцию ControlService. Все услуги должны принять и обрабатывать управляющий код SERVICE_CONTROL_INTERROGATE. Вы можете приспособить или выводить из строя принятие других стандартных управляющих кодов вызывая SetServiceStatus. Услуги могут также прооперировать дополнительные управляющие коды определенного потребителя.

Управляющий вручитель должен возвращаться в течение 30 секунд, или SCM возвращает ошибку. Если услуге нужно делать длительной обработкой когда услуга выполняет управляющего вручителя, она должна создать второстепенную резьбу, чтобы выполнять длительную обработку, тогда возвращайтесь. Это мешает услугу чтобы tying по управляющем диспетчере. Например, при обработке остановки попросите об услуге, что возьмет долгосрочный, создает другую резьбу, чтобы оперировать стоповый процесс. Управляющий вручитель должен просто вызывать SetServiceStatus с сообщением SERVICE_STOP_PENDING и возврат.

Когда потребитель отключает систему, все управляет приемнику вручителей управляющим кодом SERVICE_CONTROL_SHUTDOWN. Они извещены в заказывать, чтобы они появлялись в базе данных включенных услуг. По умолчанию, услуга имеет приблизительно 20 секунд, чтобы выполнять задачи очистки прежде, чем система отключит. Тем не менее, если система оставлена в состоянии выключения (не перезапущенный или усиленный вниз) услуга остается работать. Вы можете изменить время, которое система подождет выключение услуги модифицируя величину WaitToKillServiceTimeout на следующей клавише регистрации:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control Более подробно, смотри Пиша Управляющую Функцию Вручителя.


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz