Функция RsopAccessCheckByType (userenv.h)
Функция RSoPAccessCheckByType определяет, предоставляет ли дескриптор безопасности указанный набор прав доступа клиенту, определенному с помощью RSOPTOKEN.
Синтаксис
USERENVAPI HRESULT RsopAccessCheckByType(
[in] PSECURITY_DESCRIPTOR pSecurityDescriptor,
[in] PSID pPrincipalSelfSid,
[in] PRSOPTOKEN pRsopToken,
[in] DWORD dwDesiredAccessMask,
[in] POBJECT_TYPE_LIST pObjectTypeList,
[in] DWORD ObjectTypeListLength,
[in] PGENERIC_MAPPING pGenericMapping,
[in] PPRIVILEGE_SET pPrivilegeSet,
[in] LPDWORD pdwPrivilegeSetLength,
[out] LPDWORD pdwGrantedAccessMask,
[out] LPBOOL pbAccessStatus
);
Параметры
[in] pSecurityDescriptor
Указатель на SECURITY_DESCRIPTOR , для которого проверяется доступ к объекту.
[in] pPrincipalSelfSid
Указатель на идентификатор безопасности. Если дескриптор безопасности связан с объектом, представляющим субъект (например, объект пользователя), этот параметр должен быть идентификатором безопасности объекта. При оценке доступа этот идентификатор безопасности логически заменяет идентификатор безопасности в любом ACE, содержающем известный идентификатор безопасности PRINCIPAL_SELF (S-1-5-10). Дополнительные сведения см. в разделе Идентификаторы безопасности и известные идентификаторы безопасности.
Этот параметр должен иметь значение NULL , если защищенный объект не представляет участника.
[in] pRsopToken
Указатель на допустимый RSOPTOKEN , представляющий клиент, пытающийся получить доступ к объекту.
[in] dwDesiredAccessMask
Указывает маску доступа, указывающую права доступа для проверка. Эта маска может содержать сочетание общих, стандартных и конкретных прав доступа. Дополнительные сведения см. в разделе Права доступа и маски доступа.
[in] pObjectTypeList
Указатель на массив OBJECT_TYPE_LIST структур, определяющих иерархию типов объектов, к которым проверка доступ. Каждый элемент в массиве задает GUID , который идентифицирует тип объекта, и значение, указывающее уровень типа объекта в иерархии типов объектов. Массив не должен содержать два элемента с одинаковым ИДЕНТИФИКАТОРом GUID.
Массив должен содержать по крайней мере один элемент. Первый элемент в массиве должен находиться на нулевом уровне и идентифицировать сам объект. Массив может иметь только один нулевой элемент уровня. Второй элемент — это подобъект, например набор свойств, на уровне 1. После каждой записи уровня 1 находятся подчиненные записи для подобъектов уровня 2–4. Таким образом, уровни для элементов в массиве могут быть {0, 1, 2, 2, 1, 2, 3}. Если список типов объектов не по порядку, RSoPAccessCheckByType завершается ошибкой , а GetLastError возвращает ERROR_INVALID_PARAMETER.
[in] ObjectTypeListLength
Указывает количество элементов в массиве pObjectTypeList .
[in] pGenericMapping
Указатель на GENERIC_MAPPING структуру, связанную с объектом, для которого проверяется доступ.
[in] pPrivilegeSet
Этот параметр в настоящее время не используется.
[in] pdwPrivilegeSetLength
Этот параметр в настоящее время не используется.
[out] pdwGrantedAccessMask
Указатель на маску доступа , которая получает предоставленные права доступа.
Если функция выполняется успешно, параметру pbAccessStatus присваивается значение TRUE, а маска обновляется, чтобы она содержала предоставленные стандартные и определенные права. Если для pbAccessStatus задано значение FALSE, этот параметр имеет значение 0. Если функция завершается сбоем, маска не изменяется.
[out] pbAccessStatus
Указатель на переменную, которая получает результаты проверка доступа.
Если функция выполнена успешно и предоставлен запрошенный набор прав доступа, этому параметру присваивается значение TRUE. В противном случае этому параметру присваивается значение FALSE. Если функция завершается сбоем, состояние не изменяется.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение будет S_OK. В противном случае функция возвращает один из кодов com-ошибок, определенных в файле заголовка пакета SDK для платформы WinError.h.
Комментарии
Функция RSoPAccessCheckByType сравнивает указанный дескриптор безопасности с указанным RSOPTOKEN и указывает в параметре pbAccessStatus , предоставлен или запрещен доступ.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista |
Минимальная версия сервера | Windows Server 2008 |
Целевая платформа | Windows |
Header | userenv.h |
Библиотека | Userenv.lib |
DLL | Userenv.dll |