Функция AccessCheckAndAuditAlarmA (winbase.h)
Функция AccessCheckAndAuditAlarm определяет, предоставляет ли дескриптор безопасности указанный набор прав доступа клиенту, олицетворяемого вызывающим потоком. Если дескриптор безопасности имеет saCL с ACE, которые применяются к клиенту, функция создает все необходимые сообщения аудита в журнале событий безопасности.
Будильники в настоящее время не поддерживаются.
Синтаксис
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 |
Header | winbase.h (включая Windows.h) |
Библиотека | Advapi32.lib |
DLL | Advapi32.dll |
См. также раздел
Контроль доступа клиента или сервера