AccessCheckAndAuditAlarmA 函数 (winbase.h)
AccessCheckAndAuditAlarm 函数确定安全描述符是否向调用线程模拟的客户端授予一组指定的访问权限。 如果安全描述符具有适用于客户端的 ACE 的 SACL,则函数会在安全事件日志中生成任何必要的审核消息。
目前不支持警报。
语法
BOOL AccessCheckAndAuditAlarmA(
[in] LPCSTR SubsystemName,
[in, optional] LPVOID HandleId,
[in] LPSTR ObjectTypeName,
[in, optional] LPSTR ObjectName,
[in] PSECURITY_DESCRIPTOR SecurityDescriptor,
[in] DWORD DesiredAccess,
[in] PGENERIC_MAPPING GenericMapping,
[in] BOOL ObjectCreation,
[out] LPDWORD GrantedAccess,
[out] LPBOOL AccessStatus,
[out] LPBOOL pfGenerateOnClose
);
参数
[in] SubsystemName
指向以 null 结尾的字符串的指针,该字符串指定调用函数的子系统的名称。 此字符串显示在函数生成的任何审核消息中。
[in, optional] HandleId
指向表示客户端对 对象的句柄的唯一值的指针。 如果拒绝访问,系统将忽略此值。
[in] ObjectTypeName
指向以 null 结尾的字符串的指针,该字符串指定要创建或访问的对象的类型。 此字符串显示在函数生成的任何审核消息中。
[in, optional] ObjectName
指向以 null 结尾的字符串的指针,该字符串指定要创建或访问的对象的名称。 此字符串显示在函数生成的任何审核消息中。
[in] SecurityDescriptor
指向 SECURITY_DESCRIPTOR结构的指针 ,针对该结构检查访问权限。
[in] DesiredAccess
指定检查访问权限的访问掩码。 此掩码必须由 MapGenericMask 函数映射,才能不包含泛型访问权限。
如果此参数MAXIMUM_ALLOWED,该函数将设置 GrantedAccess 访问掩码,以指示安全描述符允许客户端的最大访问权限。
[in] GenericMapping
指向与要检查其访问权限的对象关联的 GENERIC_MAPPING 结构的指针。
[in] ObjectCreation
指定一个标志,该标志确定调用应用程序在授予访问权限时是否将创建新对象。 值为 TRUE 表示应用程序将创建新对象。 值为 FALSE 表示应用程序将打开现有对象。
[out] GrantedAccess
指向接收已授予访问权限 的访问掩码 的指针。 如果 AccessStatus 设置为 FALSE,则函数会将访问掩码设置为零。 如果函数失败,则不会设置访问掩码。
[out] AccessStatus
指向接收访问检查结果的变量的指针。 如果安全描述符允许对客户端的请求访问权限, 则 AccessStatus 设置为 TRUE。 否则, AccessStatus 设置为 FALSE。
[out] pfGenerateOnClose
指向函数返回时由审核生成例程设置的标志的指针。 关闭对象句柄时,将此标志传递给 ObjectCloseAuditAlarm 函数。
返回值
如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
注解
有关详细信息,请参阅 AccessCheck 的工作原理 概述。
AccessCheckAndAuditAlarm 函数要求调用进程启用SE_AUDIT_NAME特权。 此特权的测试针对调用进程的 主令牌 执行,而不是针对线程的 模拟令牌 执行。
如果调用线程未模拟客户端, 则 AccessCheckAndAuditAlarm 函数将失败。
要求
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | winbase.h (包括 Windows.h) |
Library | Advapi32.lib |
DLL | Advapi32.dll |