SERVICE_REQUIRED_PRIVILEGES_INFOW结构 (winsvc.h)
表示服务所需的特权。
语法
typedef struct _SERVICE_REQUIRED_PRIVILEGES_INFOW {
LPWSTR pmszRequiredPrivileges;
} SERVICE_REQUIRED_PRIVILEGES_INFOW, *LPSERVICE_REQUIRED_PRIVILEGES_INFOW;
成员
pmszRequiredPrivileges
指定特权的多字符串。 有关可能值的列表,请参阅 特权常量。
多字符串是一系列以 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) |