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 |