EventAccessControl 函数 (evntcons.h)
添加或修改指定提供程序或会话的权限。
语法
ULONG EVNTAPI EventAccessControl(
[in] LPGUID Guid,
[in] ULONG Operation,
[in] PSID Sid,
[in] ULONG Rights,
[in] BOOLEAN AllowOrDeny
);
参数
[in] Guid
用于唯一标识要添加或修改其权限的提供程序或会话的 GUID。
[in] Operation
要执行的操作类型,例如,将 DACL 添加到会话的 GUID 或提供程序的 GUID。 有关可能的值,请参阅 EVENTSECURITYOPERATION 枚举。
[in] Sid
安全标识符 (要向其授予或拒绝权限的用户或组的 SID) 。
[in] Rights
可以指定以下一个或多个权限:
[in] AllowOrDeny
如果 为 TRUE,则向用户授予对会话或提供程序的权限;否则,请拒绝权限。 如果 Operation 的值为 EventSecuritySetSACL 或 EventSecurityAddSACL,则忽略此值。
返回值
如果成功,则返回ERROR_SUCCESS。
备注
默认情况下,只有计算机的管理员、“性能日志用户”组中的用户以及作为 LocalSystem、LocalService、NetworkService 运行的服务可以控制跟踪会话,并提供和使用事件数据。 只有具有管理权限和以 LocalSystem 身份运行的服务的用户才能启动和控制 NT 内核记录器会话。
Windows Server 2003: 只有具有管理员特权的用户才能控制跟踪会话和使用事件数据;任何用户都可以提供事件数据。
Windows XP 和 Windows 2000: 任何用户都可以控制跟踪会话,并提供和使用事件数据。
如果用于控制会话的工具是从命令提示符窗口启动的,而命令提示符窗口是使用“ 以管理员身份运行...”打开的,则具有管理员特权的用户可以控制跟踪会话。
若要授予受限用户控制跟踪会话的能力,可以将他们添加到“性能日志用户”组或调用此函数来授予他们权限。 例如,可以向用户 A 授予启动和停止跟踪会话的权限,并授予用户 B 仅查询会话的权限。
若要限制可以将事件记录到会话的人员,请参阅TRACELOG_LOG_EVENT权限。
日志文件上的 ACL 确定谁可以使用日志文件中的事件数据。 若要实时使用会话中的事件,必须授予用户TRACELOG_ACCESS_REALTIME权限,或者用户必须是性能日志用户组的成员。
还可以指定提供程序的 GUID,以限制谁可以注册提供程序以及谁可以启用提供程序。
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | evntcons.h |
Library | Windows 8.1 和 Windows Server 2012 上的 Sechost.lib;Windows 8.1 和 Windows Server 2012 R2 上的 Sechost.lib;Windows 8、Windows Server 2012、Windows 7、Windows Server 2008 R2、Windows Server 2008 和 Windows Vista 上的 Advapi32.lib |
DLL | Windows 8.1 和 Windows Server 2012 上的 Sechost.dll;Windows 8、Windows Server 2012、Windows 7、Windows Server 2008 R2、Windows Server 2008 和 Windows Vista 上的 Advapi32.dll |