ObjectOpenAuditAlarmA 函数 (winbase.h)
当客户端应用程序尝试获取对象的访问权限或创建新对象时, ObjectOpenAuditAlarm 函数会生成审核消息。 目前不支持警报。
语法
BOOL ObjectOpenAuditAlarmA(
[in] LPCSTR SubsystemName,
[in] LPVOID HandleId,
[in] LPSTR ObjectTypeName,
[in, optional] LPSTR ObjectName,
[in] PSECURITY_DESCRIPTOR pSecurityDescriptor,
[in] HANDLE ClientToken,
[in] DWORD DesiredAccess,
[in] DWORD GrantedAccess,
[in, optional] PPRIVILEGE_SET Privileges,
[in] BOOL ObjectCreation,
[in] BOOL AccessGranted,
[out] LPBOOL GenerateOnClose
);
参数
[in] SubsystemName
指向以 null 结尾的字符串的指针,该字符串指定调用函数的子系统的名称。 此字符串显示在函数生成的任何审核消息中。
[in] HandleId
指向表示客户端对 对象的句柄的唯一值的指针。 如果拒绝访问,则忽略此参数。
为了实现跨平台兼容性,此指针寻址的值的大小必须为 (LPVOID) 字节长。
[in] ObjectTypeName
指向以 null 结尾的字符串的指针,该字符串指定客户端请求访问的对象的类型。 此字符串显示在函数生成的任何审核消息中。
[in, optional] ObjectName
指向以 null 结尾的字符串的指针,该字符串指定客户端请求访问的对象的名称。 此字符串显示在函数生成的任何审核消息中。
[in] pSecurityDescriptor
指向所访问对象的 SECURITY_DESCRIPTOR 结构的指针。
[in] ClientToken
标识表示请求操作的客户端 的访问令牌 。 必须通过打开模拟客户端的线程的令牌来获取此句柄。 必须打开令牌才能TOKEN_QUERY访问。
[in] DesiredAccess
指定所需的 访问掩码。 此掩码必须以前由 MapGenericMask 函数映射,以不包含泛型访问权限。
[in] GrantedAccess
指定一个 访问掩码 ,指示授予了哪些访问权限。 此访问掩码应与访问检查函数之一在其 GrantedAccess 参数中设置的值相同。 访问检查函数的示例包括 AccessCheckAndAuditAlarm 和 AccessCheck。
[in, optional] Privileges
指向 PRIVILEGE_SET 结构的指针,该结构指定访问尝试所需的 权限 集。 此参数可以为 NULL。
[in] ObjectCreation
指定一个标志,该标志确定应用程序是否在授予访问权限时创建新对象。 当此值为 TRUE 时,应用程序将创建一个新的 对象;如果为 FALSE,则应用程序将打开一个现有对象。
[in] AccessGranted
指定一个标志,该标志指示在上一次调用访问检查函数(如 AccessCheck)中是授予访问权限还是拒绝访问。 如果已授予访问权限,则此值为 TRUE。 如果没有,则为 FALSE。
[out] GenerateOnClose
指向函数返回时由审核生成例程设置的标志的指针。 关闭对象句柄时,必须将此值传递给 ObjectCloseAuditAlarm 函数。
返回值
如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
注解
ObjectOpenAuditAlarm 函数要求调用应用程序启用SE_AUDIT_NAME特权。 此特权的测试始终针对调用进程的主令牌执行,而不是针对线程的模拟令牌执行。 这允许调用进程在调用期间模拟客户端。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | winbase.h (包括 Windows.h) |
Library | Advapi32.lib |
DLL | Advapi32.dll |