Поделиться через


Функция AccessCheckAndAuditAlarmW (securitybaseapi.h)

Функция AccessCheckAndAuditAlarm определяет, предоставляет ли дескриптор безопасности указанный набор прав доступа клиенту, олицетворяемого вызывающим потоком. Если дескриптор безопасности имеет saCL с ACE, которые применяются к клиенту, функция создает все необходимые сообщения аудита в журнале событий безопасности.

Синтаксис

BOOL AccessCheckAndAuditAlarmW(
  [in]           LPCWSTR              SubsystemName,
  [in, optional] LPVOID               HandleId,
  [in]           LPWSTR               ObjectTypeName,
  [in, optional] LPWSTR               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 securitybaseapi.h (включая Windows.h)
Библиотека Advapi32.lib
DLL Advapi32.dll

См. также раздел

AccessCheck
контроль доступа клиента или сервера
Функции контроль доступа клиента или сервера
GENERIC_MAPPING
Как работает AccessCheck
MakeAbsoluteSD
MapGenericMask
ObjectCloseAuditAlarm
ObjectOpenAuditAlarm
ObjectPrivilegeAuditAlarm
Проверка привилегий
PrivilegedServiceAuditAlarm
SECURITY_DESCRIPTOR