структура SERVICE_FAILURE_ACTIONSA (winsvc.h)

Представляет действие, которое контроллер службы должен выполнять при каждом сбое службы. Служба считается неудачной при ее завершении, не сообщая контроллеру службы о состоянии SERVICE_STOPPED .

Сведения о настройке дополнительных обстоятельств, при которых должны выполняться действия сбоя, см. в разделе SERVICE_FAILURE_ACTIONS_FLAG.

Синтаксис

typedef struct _SERVICE_FAILURE_ACTIONSA {
  DWORD     dwResetPeriod;
  LPSTR     lpRebootMsg;
  LPSTR     lpCommand;
  DWORD     cActions;
  SC_ACTION *lpsaActions;
} SERVICE_FAILURE_ACTIONSA, *LPSERVICE_FAILURE_ACTIONSA;

Члены

dwResetPeriod

Время, по истечении которого счетчик сбоев сбрасывается до нуля, если сбои отсутствуют, в секундах. Укажите INFINITE , чтобы указать, что это значение никогда не следует сбрасывать.

lpRebootMsg

Сообщение, которое должно быть передано пользователям сервера перед перезагрузкой в ответ на действие контроллера службы SC_ACTION_REBOOT .

Если это значение равно NULL, сообщение о перезагрузке не изменяется. Если значение является пустой строкой (""), сообщение о перезагрузке удаляется и сообщение не передается.

Этот член может указать локализованную строку в следующем формате:

@[path]dllname,-strID

Строка с идентификатором strID загружается из dllname; Путь является необязательным. Дополнительные сведения см. в разделе RegLoadMUIString.

Windows Server 2003 и Windows XP: Локализованные строки не поддерживаются до Windows Vista.

lpCommand

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

Если это значение равно NULL, команда не изменяется. Если значение является пустой строкой (""), команда удаляется, и при сбое службы программа не запускается.

cActions

Количество элементов в массиве lpsaActions .

Если это значение равно 0, но lpsaActions не равно NULL, то период сброса и массив действий сбоя удаляются.

lpsaActions

Указатель на массив SC_ACTION структур.

Если это значение равно NULL, элементы cActions и dwResetPeriod игнорируются.

Комментарии

Диспетчер управления службами подсчитывает количество неудачных попыток каждой службы с момента загрузки системы. Счетчик сбрасывается до 0, если служба не завершилась сбоем в течение секунд dwResetPeriod . При сбое службы в N-йраз контроллер службы выполняет действие, указанное в элементе [N-1] массива lpsaActions . Если N больше cActions, контроллер службы повторяет последнее действие в массиве.

Примечание

Заголовок winsvc.h определяет SERVICE_FAILURE_ACTIONS как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Верхняя часть winsvc.h (включая Windows.h)

См. также раздел

ChangeServiceConfig2

CreateProcess

QueryServiceConfig2

SC_ACTION

SERVICE_FAILURE_ACTIONS_FLAG