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

指向 SID 的指针。 如果安全描述符与表示主体 (例如用户对象) 的对象相关联,则此参数应为对象的 SID。 评估访问权限时,此 SID 以逻辑方式替换包含已知 PRINCIPAL_SELF SID (“S-1-5-10”) 的任何 ACE 中的 SID。 有关详细信息,请参阅 安全标识符已知 SID

如果受保护的对象不表示主体,则此参数应为 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,则此参数设置为零。 如果该函数失败,则不会修改掩码。

[out] pbAccessStatus

指向接收访问检查结果的变量的指针。

如果函数成功,并且已授予请求的访问权限集,则此参数将设置为 TRUE。 否则,此参数设置为 FALSE。 如果函数失败,则不修改状态。

返回值

如果函数成功,则返回值 S_OK。 否则,该函数返回平台 SDK 头文件 WinError.h 中定义的 COM 错误代码之一。

注解

RSoPAccessCheckByType 函数将指定的安全描述符与指定的 RSOPTOKEN 进行比较,并在 pbAccessStatus 参数中指示是授予访问权限还是拒绝访问。

要求

要求
最低受支持的客户端 Windows Vista
最低受支持的服务器 Windows Server 2008
目标平台 Windows
标头 userenv.h
Library Userenv.lib
DLL Userenv.dll

另请参阅

组策略函数

组策略概述

RSoPFileAccessCheck