RsopAccessCheckByType

RSoPAccessCheckByType 関数は、RSOPTOKEN で識別されるクライアントに対してセキュリティ記述子が指定したアクセス権セットを付与するかどうかを判定する。

RsopAccessCheckByType pSecurityDescriptor, pPrincipalSelfSid, pRsopToken, dwDesiredAccessMask, pObjectTypeList, ObjectTypeListLength, pGenericMapping, pPrivilegeSet, pdwPrivilegeSetLength, pdwGrantedAccessMask, pbAccessStatus

pSecurityDescriptor : [int] オブジェクトに対するアクセスをチェックする SECURITY_DESCRIPTOR へのポインタ。
pPrincipalSelfSid : [int] SID へのポインタ。セキュリティ記述子がプリンシパル (例: ユーザーオブジェクト) を表すオブジェクトに関連付けられている場合、このパラメータはそのオブジェクトの SID であるべきである。アクセスを評価するとき、この SID は、既知の PRINCIPAL_SELF SID ("S-1-5-10") を含む任意の ACE 内の SID を論理的に置き換える。詳細は Security Identifiers および Well-Known SIDs を参照。保護対象オブジェクトがプリンシパルを表さない場合、このパラメータは NULL にするべきである。
pRsopToken : [intptr] オブジェクトにアクセスしようとするクライアントを表す有効な RSOPTOKEN へのポインタ。
dwDesiredAccessMask : [int] チェックするアクセス権を示すアクセスマスクを指定する。このマスクには汎用、標準、特定アクセス権の組み合わせを含めることができる。詳細は Access Rights and Access Masks を参照。
pObjectTypeList : [var] アクセスをチェックするオブジェクトタイプの階層を識別する 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 を返す。
ObjectTypeListLength : [int] pObjectTypeList 配列内の要素数を指定する。
pGenericMapping : [var] アクセスをチェックするオブジェクトに関連付けられた GENERIC_MAPPING 構造体へのポインタ。
pPrivilegeSet : [var] このパラメータは現在使われていない。
pdwPrivilegeSetLength : [var] このパラメータは現在使われていない。
pdwGrantedAccessMask : [var] 付与されたアクセス権を受け取るアクセスマスクへのポインタ。関数が成功して pbAccessStatus が TRUE に設定された場合、マスクは付与された標準および特定のアクセス権を含むように更新される。pbAccessStatus が FALSE に設定された場合、このパラメータは 0 に設定される。関数が失敗した場合、マスクは変更されない。
pbAccessStatus : [var] アクセスチェックの結果を受け取る変数へのポインタ。関数が成功し要求されたアクセス権セットが付与された場合、このパラメータは TRUE に設定される。それ以外の場合は FALSE に設定される。関数が失敗した場合、状態は変更されない。

(プラグイン / モジュール : userenv.dll)

解説

RSoPAccessCheckByType 関数は、RSOPTOKEN
で識別されるクライアントに対してセキュリティ記述子が指定したアクセス権セットを付与するかどうかを判定する。

[戻り値]
関数が成功した場合は S_OK を返す。そうでない場合は Platform SDK ヘッダーファイル WinError.h
に定義されている COM エラーコードのいずれかを返す。

[備考]
RSoPAccessCheckByType 関数は、指定したセキュリティ記述子を指定した RSOPTOKEN
と比較し、アクセスが付与されるか拒否されるかを pbAccessStatus パラメータで示す。

情報

プラグイン / モジュールuserenv.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の userenv.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_userenv_gen2.hs