Структура SERVICE_STATUS

Структура SERVICE_STATUS

Ниже приведено определение структуры SERVICE_STATUS. 

typedef struct _SERVICE_STATUS {

 DWORD dwServiceType;

 DWORD dwCurrentState;

 DWORD dwControlsAccepted;

 DWORD dwWin32ExitCode;

 DWORD dwServiceSpecificExitCode;

 DWORD dwCheckPoint;

 DWORD dwWaitHint;

} SERVICE_STATUS, *LPSERVICE_STATUS; 

Параметры

dwWin32ExitCode — обычный код завершения потока, используемый логической службой. Служба должна установить этот код равным NO_ERROR в процессе выполнения и при нормальном завершении.

dwServiceSpecificExitCode — может использоваться в качестве кода завершения, когда ошибка возникает при запуске или остановке службы, но это значение игнорируется, если значение параметра dwWin32ExitCode не было установлено равным ERROR_SERVICE_SPECIFIC_ERROR.

dwCheckPoint — служба должна периодически увеличивать значение этого параметра для индикации выполнения на всех стадиях, включая стадии инициализации и остановки. Этот параметр не действует и должен устанавливаться равным 0, если служба не находится в состоянии запуска, остановки, паузы и не выполняет никаких длительных операций.

dwWaitHint — ожидаемая длительность интервалов времени (в миллисекундах) между последовательными вызовами функции SetServiceStatus, осуществляемыми с увеличенным значением параметра dwCheckPoint или измененным значением параметра dwCurrentState. Как уже отмечалось ранее, если на протяжении этого промежутка времени вызова функции SetServiceStatus не происходит, то SCM предполагает, что это вызвано возникновением ошибки.

Остальные элементы структуры SERVICE_STATUS обсуждаются ниже по отдельности. 

Тип службы

Параметр dwServiceType должен иметь одно из значений, описанных в таблице 13.1.

В наших примерах в качестве типа службы почти всегда будет предполагаться тип SERVICE_WIN32_OWN_PROCESS, но из приведенных в таблице значений видно, что службы могут играть множество различных ролей.

Таблица 13.1. Типы служб 

Значение Описание
SERVICE WIN32 OWN PROCESS Указывает на службу Windows, выполняющуюся в собственном процессе с собственными ресурсами. Используется в программе 13.2.
SERVICE_WIN32_SHARE_PROCESS Указывает на службу Windows, разделяющую процесс с другими службами, в результате чего несколько служб могут совместно использовать одни и те же ресурсы, переменные окружения и так далее.
SERVICE_KERNEL_DRIVER Указывает на драйвер устройства Windows.
SERVICE_FILE_SYSTEM_DRIVER Определяет драйвер файловой системы Windows.
SERVICE_INTERACTIVE_PROCESS Указывает на процесс службы Windows, который может взаимодействовать с пользователем через рабочий стол.

Состояние службы

Значение параметра dwCurrentState указывает на текущее состояние службы. Возможные значения этого параметра перечислены в табл. 13.2.

Таблица 13.2. Значения параметра состояния службы

Значение Описание
SERVICE_STOPPED Служба не выполняется.
SERVICE_START_PENDING Служба находится на стадии запуска, но пока не готова отвечать на запросы. Например, могут еще не быть запущены рабочие потоки.
SERVICE_STOP_PENDING Служба находится на стадии остановки, но еще не завершила своего выполнения. Например, мог быть установлен глобальный флаг завершения, но рабочие потоки еще не успели на это отреагировать.
SERVICE_RUNNING Служба выполняется.
SERVICE CONTINUE_PENDING Служба переходит в состояние выполнения после нахождения в состоянии паузы.
SERVICE_PAUSE_PENDING Служба переходит в состояние паузы, но ее безопасное нахождение в этом состоянии пока не обеспечено.
SERVICE PAUSED Служба находится в состоянии паузы.

Воспринимаемые управляющие коды

Параметр dwControlsAccepted определяет управляющие коды, которые служба будет воспринимать и обрабатывать с помощью своего обработчика (см. следующий раздел). В табл. 13.3 указаны четыре возможных значения, которые могут объединяться посредством операции поразрядного "или" (|). Версия программы serverSK, которую мы впоследствии разработаем, будет воспринимать лишь три первых значения. Дополнительные значения приведены в разделе MSDN, содержащем описание структуры SERVICE_STATUS.

Таблица 13.3. Коды, воспринимаемые службой (неполный перечень) 

Значение Описание
SERVICE_ACCEPT_STOP Разрешает посылку команды SERVICE_CONTROL_STOP.
SERVICE_ACCEPT_PAUSE_CONTINUE Разрешает посылку команд SERVICE_CONTROL_PAUSE и SERVICE_CONTROL_CONTINUE.
SERVICE_ACCEPT_SHUTDOWN Уведомляет службу о прекращении работы системы. Это дает системе возможность послать службе команду SERVICE_CONTROL_SHUTDOWN.
SERVICE_ACCEPT_PARAMCHANGE Требуется NT5. Обеспечивает изменение параметров запуска без выполнения самого перезапуска. Соответствующей командой является SERVICE_CONTROL_PARAMCHANGE 
Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Структура книги

Из книги Блеск и нищета информационных технологий. Почему ИТ не являются конкурентным преимуществом автора Карр Николас Дж.


8.1.1. Структура

Из книги Как писать драйвера автора Компьютеры Автор неизвестен -

8.1.1. Структура Это – структура, которой следуют все сценарии в этом руководстве. Если вы обнаружите, что это не так, то скорее всего это моя ошибка, если конечно я не объяснил, почему я нарушил эту структуру.1. Configuration – Прежде всего мы должны задать параметры конфигурации,


Структура книги

Из книги Word 2007.Популярный самоучитель автора Краинский И

Структура книги Книга содержит три части. Первая часть состоит из глав 1-3 с предварительными сведениями о базах данных, языке SQL и сервере баз данных SQL Server. Эти фундаментальные сведения позволят читателю познакомиться с основными концепциями и понятиями, используемыми в


Структура

Из книги Создание шаблонов Joomla автора Автор неизвестен

Структура Режим Структура используется при создании больших документов, насыщенных заголовками и подзаголовками (рис. 2.60). Для работы с этим режимом нужно, чтобы документ был отформатирован при помощи стилей (см. разд. 4.7), иначе этот режим в работе помочь не сможет. Рис.


Структура

Из книги Photoshop. Лучшие фильтры автора Бондаренко Сергей

Структура Так как вы имеете дело с отображением структурированных данных, необходимо определится с общим размещением. Обычно Joomla! использует структуру размещения элементов показанную ниже: Рис. 1: СтруктураСекция 1:  Часть 1: Тут стоит разместить логотип или название


Структура книги

Из книги UNIX: взаимодействие процессов автора Стивенс Уильям Ричард

Структура книги В главах 2–8 фильтры сгруппированы по компаниям-производителям. Нередко подключаемые модули, выпускаемые одним и тем же разработчиком, дополняют друг друга и могут использоваться вместе. Примером может служить набор инструментов для корректировки


3.3. Структура ipc_perm

Из книги Интернет – легко и просто! автора Александров Егор

3.3. Структура ipc_perm Для каждого объекта IPC, как для обычного файла, в ядре хранится набор информации, объединенной в структуру.struct ipc_perm { uid_t uid; /*идентификатор пользователя владельца*/ gid_t gid; /*идентификатор группы владельца */ uid_t cuid; /*идентификатор пользователя


Структура

Из книги Фотоприколы с помощью Photoshop автора Гурский Юрий Анатольевич

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


Структура

Из книги Видеосамоучитель создания реферата, курсовой, диплома на компьютере автора Баловсяк Надежда Васильевна

Структура Одно из основных отличий хорошего резюме от плохого – это лаконичность. Работодатели – люди, как правило, занятые, а писем, подобных вашему, им предстоит прочесть не один десяток, и тратить свое время на изучение вашей подробной биографии они наверняка не будут.


Структура книги

Из книги HTML5 для веб-дизайнеров автора Джереми Кит

Структура книги Первая часть книги – теоретическая, она содержит тот базовый набор знаний, без которых работать с программой невозможно. Вы познакомитесь с самыми важными понятиями компьютерной графики, узнаете, зачем в Photoshop так много непонятных и страшных (на первый


12.3. Структура работы

Из книги Разработка ядра Linux автора Лав Роберт

12.3. Структура работы Обычно структура курсовой или дипломной работы детально описана в методических указаниях к выполнению, которые можно получить в любом вузе. Однако такие работы состоят из набора общих компонентов, о которых будет рассказано ниже.Аннотация. Обычно


Структура

Из книги автора

Структура Еще в 2005 году компания Google провела ряд исследований, чтобы обнаружить, какие именно низко висящие плоды можно найти на тропках веба (http://code.google.com/webstats/).Парсер осмотрел более миллиарда веб-страниц и разметил самые частые названия классов. Результаты не принесли


Структура bio

Из книги автора

Структура bio Основным контейнером для операций ввода-вывода в ядре является структура bio, которая определена в файле <linux/bio.h>. Эта структура представляет активные операции блочного ввода-вывода в виде списка сегментов (segment). Сегмент — это участок буфера, который