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


Функция 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

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

Функции групповая политика

Обзор групповых политик

RSoPFileAccessCheck