AccessCheckAndAuditAlarm功能执行访问验证并生成相应的审核消息。应用程序还可以使用此函数来确定客户端进程是否拥有必需的权限。此函数通常由模拟客户端进程的服务器应用程序使用。当前版本的Windows NT不支持警报。
BOOL AccessCheckAndAuditAlarm(
LPCTSTR 【SubsystemName】, | //子系统名称的字符串地址 |
LPVOID 【HandleId】, | //句柄标识符的地址 |
LPTSTR 【ObjectTypeName】, | //对象类型的字符串地址 |
LPTSTR 【ObjectName】, | //对象名称的字符串地址 |
PSECURITY_DESCRIPTOR 【SecurityDescriptor】, | //安全描述符的地址 |
DWORD 【DesiredAccess】, | //屏蔽所请求的访问权限 |
PGENERIC_MAPPING 【GenericMapping】, | // GENERIC_MAPPING的地址 |
BOOL 【ObjectCreation】, | //对象创建标志 |
LPDWORD 【GrantedAccess】, | //掩码的地址授予权限 |
LPBOOL 【AccessStatus】, | //结果标志的地址 |
LPBOOL 【pfGenerateOnClose】 | //指向用于审计生成的标志的指针 |
); |
参数
【SubsystemName】
指向以null结尾的字符串,指定调用函数__的子系统的名称,例如“DEBUG”或“WIN32”。
【HandleId】
指向一个唯一的32位值,表示客户端对象的句柄。如果访问被拒绝,该值将被忽略,并可能被重用。
【ObjectTypeName】
指向一个以null结束的字符串,指定正在创建或访问的对象的类型。此字符串显示在该对象的审核日志中。
【ObjectName】
指向一个以null结束的字符串,指定正在创建或访问的对象的名称。此字符串显示在该对象的审核日志中。
【SecurityDescriptor】
指向SECURITY_DESCRIPTOR结构,以检查哪个访问。
【DesiredAccess】
指定给出请求的访问权限的访问掩码。此掩码必须已映射为不包含MapGenericMask功能的通用访问权限。
【GenericMapping】
指向与正在检查的对象类型相关联的GENERIC_MAPPING结构。
【ObjectCreation】
指定一个标志,用于确定在授予访问权限时,调用应用程序是否创建新对象。如果此标志为TRUE,应用程序将创建一个新对象;如果为FALSE,应用程序将打开一个现有对象。
【GrantedAccess】
如果功能成功,则指向接收访问掩码的缓冲区,指示哪些访问权限被授予。
【AccessStatus】
指向功能设置为指示访问检查的成功或失败的标志。如果访问被授予,则该标志为TRUE;否则,它是FALSE。
【pfGenerateOnClose】
指向由函数返回时由审计生成例程设置的标志。当对象句柄关闭时,必须将该标志传递给ObjectCloseAuditAlarm函数。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
AccessCheckAndAuditAlarm功能将指定的安全描述符与调用进程的模拟访问令牌进行比较,并指示访问是否被授予或拒绝。如果访问被授予,请求的访问掩码将成为该对象的授权访问掩码。此函数还会由于访问尝试而生成任何必要的审核消息。
此函数要求呼叫进程具有SE_AUDIT_NAME特权。针对该权限的测试针对调用进程的主令牌执行,而不是线程的模拟令牌。
也可以看看
AccessCheck, AreAllAccessesGranted, AreAnyAccessesGranted, GENERIC_MAPPING, MapGenericMask, ObjectCloseAuditAlarm, ObjectOpenAuditAlarm, ObjectPrivilegeAuditAlarm, PrivilegeCheck, PrivilegedServiceAuditAlarm, SECURITY_DESCRIPTOR