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
チェックへのアクセス権を示すアクセス マスクを指定します。 このマスクには、 汎用、 標準 、および特定のアクセス権の組み合わせを含めることができます。 詳細については、「 Access Rights and Access Masks」を参照してください。
[in] pObjectTypeList
アクセスをチェックするオブジェクト型の階層を識別するOBJECT_TYPE_LIST構造体の配列へのポインター。 配列内の各要素は、オブジェクトの種類を識別する GUID と、オブジェクト型の階層内のオブジェクト型のレベルを示す値を指定します。 配列には、同じ GUID を持つ 2 つの要素を含めてはいけません。
配列には少なくとも 1 つの要素が必要です。 配列の最初の要素はレベル 0 で、オブジェクト自体を識別する必要があります。 配列には、レベル 0 要素を 1 つだけ含めることができます。 2 番目の要素は、レベル 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。 それ以外の場合、この関数は、プラットフォーム SDK ヘッダー ファイル WinError.h で定義されている COM エラー コードのいずれかを返します。
注釈
RSoPAccessCheckByType 関数は、指定されたセキュリティ記述子と指定した RSOPTOKEN を比較し、pbAccessStatus パラメーターでアクセスが許可されるか拒否されるかを示します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista |
サポートされている最小のサーバー | Windows Server 2008 |
対象プラットフォーム | Windows |
ヘッダー | userenv.h |
Library | Userenv.lib |
[DLL] | Userenv.dll |