objectPrivilegeAuditAlarmA 函数 (winbase.h)

ObjectPrivilegeAuditAlarm 函数在安全事件日志中生成审核消息。 受保护的服务器可以使用此函数记录客户端尝试使用具有专用对象的开放句柄的指定 权限 集。 目前不支持警报。

语法

BOOL ObjectPrivilegeAuditAlarmA(
  [in] LPCSTR         SubsystemName,
  [in] LPVOID         HandleId,
  [in] HANDLE         ClientToken,
  [in] DWORD          DesiredAccess,
  [in] PPRIVILEGE_SET Privileges,
  [in] BOOL           AccessGranted
);

参数

[in] SubsystemName

指向以 null 结尾的字符串的指针,该字符串指定调用函数的子系统的名称。 此字符串显示在审核消息中。

[in] HandleId

指向表示客户端对 对象的句柄的唯一值的指针。

[in] ClientToken

标识表示请求操作的客户端 的访问令牌 。 必须通过打开模拟客户端的线程的令牌来获取此句柄。 必须打开令牌才能TOKEN_QUERY访问。 函数使用此令牌获取审核消息的客户端标识。

[in] DesiredAccess

指定一个 访问掩码 ,指示正在使用的特权访问类型或正在尝试其使用的类型。 MapGenericMask 函数可以映射访问掩码,因此它不包含任何泛型访问类型。

[in] Privileges

指向 PRIVILEGE_SET 结构的指针,其中包含客户端尝试使用 的权限 。 权限的名称显示在审核消息中。

[in] AccessGranted

指示客户端尝试使用特权是否成功。 如果此值为 TRUE,则审核消息指示成功。 如果此值为 FALSE,则审核消息指示失败。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

ObjectPrivilegeAuditAlarm 函数不检查客户端对对象的访问权限,也不检查客户端的访问令牌来确定是保留还是启用权限。 通常,调用 PrivilegeCheck 函数以确定是否在访问令牌中启用了指定的特权,调用 AccessCheck 函数以检查客户端对对象的访问,然后调用 ObjectPrivilegeAuditAlarm 来记录结果。

ObjectPrivilegeAuditAlarm 函数要求调用进程启用SE_AUDIT_NAME特权。 此特权的测试始终针对调用进程的 主令牌 执行,而不是针对线程的 模拟令牌 执行。 这允许调用进程在调用期间模拟客户端。

要求

   
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 winbase.h (包括 Windows.h)
Library Advapi32.lib
DLL Advapi32.dll

另请参阅

AccessCheck

AccessCheckAndAuditAlarm

客户端/服务器访问控制函数

客户端/服务器访问控制概述

MapGenericMask

ObjectCloseAuditAlarm

ObjectOpenAuditAlarm

PRIVILEGE_SET

PrivilegeCheck

PrivilegedServiceAuditAlarm