当客户端应用程序尝试访问对象或创建新对象时,ObjectOpenAuditAlarm函数将生成审核消息。当前版本的Windows NT不支持警报。
BOOL ObjectOpenAuditAlarm(
LPCTSTR 【SubsystemName】, | //子系统名称的字符串地址 |
LPVOID 【HandleId】, | //句柄标识符的地址 |
LPTSTR 【ObjectTypeName】, | //对象类型的字符串地址 |
LPTSTR 【ObjectName】, | //对象名称的字符串地址 |
PSECURITY_DESCRIPTOR 【pSecurityDescriptor】, | //安全描述符的地址 |
HANDLE 【ClientToken】, | //客户端访问令牌的句柄 |
DWORD 【DesiredAccess】, | //掩盖所需的访问权限 |
DWORD 【GrantedAccess】, | //掩盖授权访问权限 |
PPRIVILEGE_SET 【特权】, | //特权地址 |
BOOL 【ObjectCreation】, | //标志用于创建对象 |
BOOL 【AccessGranted】, | //标志为结果 |
LPBOOL 【GenerateOnClose】 | //用于审计生成的标志的地址 |
); |
参数
【SubsystemName】
指向一个以null结束的字符串,指定调用此函数的子系统,例如“DEBUG”或“WIN32”。
【HandleId】
指向一个唯一的32位值,表示客户端对象的句柄。如果访问被拒绝,则忽略该参数。
【ObjectTypeName】
指向一个以null结尾的字符串,指定客户端请求访问的对象的类型。此字符串显示在该对象的审核日志中。
【ObjectName】
指向一个以null结尾的字符串,指定客户端获得访问或尝试访问的对象的名称。此字符串显示在该对象的审核日志中。
【pSecurityDescriptor】
指向正在访问的对象的SECURITY_DESCRIPTOR结构。
【ClientToken】
标识表示客户端请求操作的访问令牌。必须通过打开假冒客户端的线程的令牌来获取此句柄。必须打开令牌才能进行TOKEN_QUERY访问。
【DesiredAccess】
指定所需的访问掩码。此掩码先前已被MapGenericMask函数映射,以不包含通用访问权限。
【GrantedAccess】
指定一个访问掩码,指出哪些访问权限被授予。该访问掩码旨在由其【GrantedAccess】参数中的访问检查功能之一设置的相同值。访问检查功能的示例包括AccessCheckAndAuditAlarm和AccessCheck.
【特权】
指向PRIVILEGE_SET结构,指定访问尝试所需的权限集。此参数可以为NULL。
【ObjectCreation】
指定一个标志,用于确定在授予访问权限时应用程序是否创建新对象。当此标志为TRUE时,应用程序将创建一个新对象;当它为FALSE时,应用程序将打开一个现有对象。
【AccessGranted】
指定一个标志,指示在先前的访问检查功能(例如AccessCheck)中的访问是否已被授权或被拒绝。如果访问被授予,则该标志为TRUE。如果没有,则为FALSE。
【GenerateOnClose】
指向由函数返回时由审计生成例程设置的标志。当对象句柄关闭时,必须将该标志传递给ObjectCloseAuditAlarm函数。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
ObjectOpenAuditAlarm功能要求呼叫应用具有SE_AUDIT_NAME特权。此特权的测试总是针对调用进程的主令牌执行,而不是线程的模拟令牌。这允许呼叫过程在呼叫期间模拟客户端。
也可以看看
AccessCheck, AccessCheckAndAuditAlarm, AreAllAccessesGranted, AreAnyAccessesGranted, MapGenericMask, ObjectCloseAuditAlarm, ObjectDeleteAuditAlarm, ObjectPrivilegeAuditAlarm, PrivilegeCheck, PrivilegedServiceAuditAlarm, PRIVILEGE_SET, SECURITY_DESCRIPTOR