SERVICE_REQUIRED_PRIVILEGES_INFOA 结构 (winsvc.h)

表示服务所需的特权。

语法

typedef struct _SERVICE_REQUIRED_PRIVILEGES_INFOA {
  LPSTR pmszRequiredPrivileges;
} SERVICE_REQUIRED_PRIVILEGES_INFOA, *LPSERVICE_REQUIRED_PRIVILEGES_INFOA;

成员

pmszRequiredPrivileges

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

多字符串是一系列以 null 结尾的字符串,由空字符串 (\0) 终止。 示例如下: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