SERVICE_DELAYED_AUTO_START_INFO结构 (winsvc.h)
包含自动启动服务的延迟自动启动设置。
语法
typedef struct _SERVICE_DELAYED_AUTO_START_INFO {
BOOL fDelayedAutostart;
} SERVICE_DELAYED_AUTO_START_INFO, *LPSERVICE_DELAYED_AUTO_START_INFO;
成员
fDelayedAutostart
如果此成员为 TRUE,则服务在启动其他自动启动服务后启动,并出现短暂延迟。 否则,服务在系统启动期间启动。
除非服务是自动启动服务,否则将忽略此设置。
注解
任何服务都可以标记为延迟的自动启动服务;但是,除非服务是自动启动服务,否则此设置不起作用。 更改在下次启动系统时生效。
服务控制管理器 (SCM) 支持延迟的自动启动服务,以提高启动时的系统性能,而不会影响用户体验。 SCM 会在启动期间列出延迟的自动启动服务,并在延迟过后一次启动一个服务,以遵循依赖项。 对于何时启动服务,没有具体的时间保证。 为了尽量减少对用户的影响,服务的 ServiceMain 线程使用 THREAD_PRIORITY_LOWEST 启动。 ServiceMain 线程启动的线程也应以低优先级运行。 服务报告进入SERVICE_RUNNING状态后, ServiceMain 线程的优先级将提升为THREAD_PRIORITY_NORMAL。
延迟自动启动服务不能是负载排序组的成员。 它可以依赖于另一个自动启动服务。 自动启动服务可以依赖于延迟的自动启动服务,但通常不需要这样做,因为 SCM 必须在启动时启动依赖的延迟自动启动服务。
如果延迟的自动启动服务在启动后不久使用 StartService 函数进行按需启动,系统会按需启动服务,而不是进一步延迟其启动。 如果这种情况可能会定期发生,则不应将服务标记为延迟的自动启动服务。
如果客户端在加载前调用延迟的自动启动服务,则调用会失败。 因此,客户端应准备好重试调用或要求启动服务。
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
标头 | winsvc.h (包括 Windows.h) |