AuditComputeEffectivePolicyByToken 函数 (ntsecapi.h)

AuditComputeEffectivePolicyByToken 函数为与指定令牌关联的安全主体的一个或多个子类别计算有效的审核策略。 函数通过将系统审核策略与每用户策略相结合来计算有效的审核策略。

语法

BOOLEAN AuditComputeEffectivePolicyByToken(
  [in]  HANDLE                    hTokenHandle,
  [in]  const GUID                *pSubCategoryGuids,
  [in]  ULONG                     dwPolicyCount,
  [out] PAUDIT_POLICY_INFORMATION *ppAuditPolicy
);

参数

[in] hTokenHandle

与要为其计算有效审核策略的主体关联的访问令牌的句柄。 必须已使用 TOKEN_QUERY 访问权限打开令牌。 当前不支持组 SID 的按用户策略。

[in] pSubCategoryGuids

指向 GUID 值数组的指针,该值指定要为其计算有效审核策略的子类别。 有关定义的子类别的列表,请参阅 审核常量

[in] dwPolicyCount

每个 pSubCategoryGuidsppAuditPolicy 数组中的元素数。

[out] ppAuditPolicy

指向单个缓冲区的指针,该缓冲区包含指向 AUDIT_POLICY_INFORMATION 结构和结构本身的指针数组。 AUDIT_POLICY_INFORMATION结构为 pSubCategoryGuids 数组指定的子类别指定有效的审核策略。

使用此缓冲区后,请通过调用 AuditFree 函数来释放该缓冲区。

返回值

如果该函数成功,则返回 TRUE

如果函数失败,则返回 FALSE。 要获得更多的错误信息,请调用 GetLastError。 GetLastError 可能会返回 WinError.h 中定义的以下错误代码之一。

返回代码/值 说明
ERROR_ACCESS_DENIED
5
调用方没有调用此函数所需的特权或访问权限。
ERROR_INVALID_PARAMETER
87
一个或多个参数无效。
ERROR_FILE_NOT_FOUND
2 (0x2)
pSid 参数指定的主体不存在每用户审核策略。

注解

若要成功调用此函数,调用方必须具有 SeSecurityPrivilege,或者对 Audit 安全对象具有AUDIT_QUERY_SYSTEM_POLICYAUDIT_QUERY_USER_POLICY访问权限。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 ntsecapi.h
Library Advapi32.lib
DLL Advapi32.dll