Функция ObjectOpenAuditAlarmA (winbase.h)
Функция ObjectOpenAuditAlarm создает сообщения аудита, когда клиентское приложение пытается получить доступ к объекту или создать новый. Будильники в настоящее время не поддерживаются.
Синтаксис
BOOL ObjectOpenAuditAlarmA(
[in] LPCSTR SubsystemName,
[in] LPVOID HandleId,
[in] LPSTR ObjectTypeName,
[in, optional] LPSTR ObjectName,
[in] PSECURITY_DESCRIPTOR pSecurityDescriptor,
[in] HANDLE ClientToken,
[in] DWORD DesiredAccess,
[in] DWORD GrantedAccess,
[in, optional] PPRIVILEGE_SET Privileges,
[in] BOOL ObjectCreation,
[in] BOOL AccessGranted,
[out] LPBOOL GenerateOnClose
);
Параметры
[in] SubsystemName
Указатель на строку, завершающуюся значением NULL, указывающую имя подсистемы, вызывающей функцию. Эта строка отображается в любом сообщении аудита, которое создает функция.
[in] HandleId
Указатель на уникальное значение, представляющее дескриптор клиента для объекта . Если доступ запрещен, этот параметр игнорируется.
Для кроссплатформенной совместимости значение, адресуемое этим указателем, должно быть длиной в байтах sizeof (LPVOID).
[in] ObjectTypeName
Указатель на строку со значением NULL, указывающую тип объекта, к которому клиент запрашивает доступ. Эта строка отображается в любом сообщении аудита, которое создает функция.
[in, optional] ObjectName
Указатель на строку, завершающуюся значением NULL, указывающую имя объекта, к которому клиент запрашивает доступ. Эта строка отображается в любом сообщении аудита, которое создает функция.
[in] pSecurityDescriptor
Указатель на структуру SECURITY_DESCRIPTOR объекта, к которой осуществляется доступ.
[in] ClientToken
Идентифицирует маркер доступа , представляющий клиент, запрашивающий операцию. Этот дескриптор должен быть получен путем открытия маркера потока, олицетворяющего клиента. Маркер должен быть открыт для доступа TOKEN_QUERY.
[in] DesiredAccess
Указывает требуемую маску доступа. Эта маска должна быть ранее сопоставлена функцией MapGenericMask , чтобы она не содержала универсальных прав доступа.
[in] GrantedAccess
Указывает маску доступа , указывающую, какие права доступа предоставляются. Эта маска доступа предназначена для того же значения, которое задается одной из функций проверки доступа в параметре GrantedAccess . Примерами функций проверки доступа являются AccessCheckAndAuditAlarm и AccessCheck.
[in, optional] Privileges
Указатель на структуру PRIVILEGE_SET , указывающую набор привилегий, необходимых для попытки доступа. Этот параметр может принимать значение NULL.
[in] ObjectCreation
Указывает флаг, определяющий, создает ли приложение новый объект при предоставлении доступа. Если это значение равно TRUE, приложение создает новый объект ; Если значение равно FALSE, приложение открывает существующий объект .
[in] AccessGranted
Задает флаг, указывающий, был ли предоставлен или запрещен доступ при предыдущем вызове функции проверки доступа, например AccessCheck. Если доступ был предоставлен, это значение равно TRUE. В противном случае это false.
[out] GenerateOnClose
Указатель на флаг, заданный подпрограммой создания аудита при возврате функции. Это значение должно быть передано функции ObjectCloseAuditAlarm при закрытии дескриптора объекта.
Возвращаемое значение
Если функция выполняется успешно, возвращается ненулевое значение.
Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
Функция ObjectOpenAuditAlarm требует, чтобы вызывающее приложение было включено SE_AUDIT_NAME привилегии. Проверка этой привилегии всегда выполняется с основным маркером вызывающего процесса, а не с маркером олицетворения потока. Это позволяет вызывающей процедуре олицетворять клиента во время вызова.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | winbase.h (включая Windows.h) |
Библиотека | Advapi32.lib |
DLL | Advapi32.dll |
См. также раздел
Контроль доступа клиента или сервера