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 會以邏輯方式取代任何 ACE 中的 SID,其中包含已知PRINCIPAL_SELF SID ( “S-1-5-10”) 。 如需詳細資訊,請參閱 安全性標識碼 和 已知 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 |
程式庫 | Userenv.lib |
Dll | Userenv.dll |