SERVICE_REQUIRED_PRIVILEGES_INFOW结构(winsvc.h)

表示服务所需的特权。

语法

typedef struct _SERVICE_REQUIRED_PRIVILEGES_INFOW {
  LPWSTR pmszRequiredPrivileges;
} SERVICE_REQUIRED_PRIVILEGES_INFOW, *LPSERVICE_REQUIRED_PRIVILEGES_INFOW;

成员

pmszRequiredPrivileges

一个指定特权的多字符串。 有关可能值的列表,请参阅 Privilege Constants

多字符串是由空字符串(\0)终止的以 null 结尾的字符串序列。 下面是一个示例:String1\0String2\0String3\0LastString\0\0

言论

下次启动服务时,所需权限的更改将生效。 SCM 确定服务在尝试启动服务时是否可以支持指定的特权。

最好分析服务并使用所需的最小特权集。

如果未设置所需的权限,则 SCM 将使用默认分配给进程令牌的所有特权。 如果为服务指定特权,则 SCM 将在进程启动时从进程令牌中删除不需要的特权。 如果多个服务共享一个进程,则 SCM 将计算进程中所有服务所需的特权联合。

为了兼容,SeChangeNotifyPrivilege 特权永远不会从进程令牌中删除,即使进程中没有服务请求特权也是如此。 因此,服务不需要显式指定此权限。

注意

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

要求

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

另请参阅

ChangeServiceConfig2

QueryServiceConfig2