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,则重新启动消息保持不变。 如果值为空字符串(“),则会删除重新启动消息,且未广播任何消息。

此成员可以使用以下格式指定本地化字符串:

@[路径]dllname,-strID

dllname加载标识符 strID 的字符串;路径 是可选的。 有关详细信息,请参阅 RegLoadMUIString

Windows Server 2003 和 Windows XP:在 Windows Vista 之前不支持本地化字符串

lpCommand

CreateProcess 函数的命令行,以响应 SC_ACTION_RUN_COMMAND 服务控制器操作。 此过程在服务所在的同一帐户下运行。

如果此值 NULL,则命令保持不变。 如果值为空字符串(“),则会删除该命令,并且服务失败时不会运行任何程序。

cActions

lpsaActions 数组中的元素数。

如果此值为 0,但 lpsaActions 不为 NULL,则会删除重置周期和失败操作数组。

lpsaActions

指向 SC_ACTION 结构的数组的指针。

如果此值为 NULL,则忽略 cActionsdwResetPeriod 成员。

言论

服务控制管理器计算自系统启动以来每个服务失败的次数。 如果 dwResetPeriod 秒的服务未失败,计数将重置为 0。 当服务第 N次失败时,服务控制器将执行 lpsaActions 数组的元素 [N-1] 中指定的操作。 如果 N 大于 cActions,服务控制器将重复数组中的最后一个操作。

注意

winsvc.h 标头将SERVICE_FAILURE_ACTIONS定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows XP [仅限桌面应用]
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
标头 winsvc.h (包括 Windows.h)

另请参阅

ChangeServiceConfig2

CreateProcess

QueryServiceConfig2

SC_ACTION

SERVICE_FAILURE_ACTIONS_FLAG