GetSecurityInfo

ハンドルで指定したオブジェクトのセキュリティ記述子のコピーを取得する。

GetSecurityInfo handle, ObjectType, SecurityInfo, ppsidOwner, ppsidGroup, ppDacl, ppSacl, ppSecurityDescriptor

handle : [intptr] セキュリティ情報を取得するオブジェクトへのハンドル。
ObjectType : [int] オブジェクトの型を示す SE_OBJECT_TYPE 列挙の値。
SecurityInfo : [int] 取得するセキュリティ情報の種類を示すビット フラグのセット。このパラメータは SECURITY_INFORMATION ビット フラグの組み合わせを指定できる。
ppsidOwner : [var] ppSecurityDescriptor で返されるセキュリティ記述子内の所有者 SID へのポインタを受け取る変数へのポインタ。返されるポインタは OWNER_SECURITY_INFORMATION フラグを設定した場合にのみ有効である。所有者 SID が不要な場合、このパラメータは NULL にできる。
ppsidGroup : [var] 返されるセキュリティ記述子内のプライマリ グループ SID へのポインタを受け取る変数へのポインタ。返されるポインタは GROUP_SECURITY_INFORMATION フラグを設定した場合にのみ有効である。グループ SID が不要な場合、このパラメータは NULL にできる。
ppDacl : [var] 返されるセキュリティ記述子内の DACL へのポインタを受け取る変数へのポインタ。返されるポインタは DACL_SECURITY_INFORMATION フラグを設定した場合にのみ有効である。DACL が不要な場合、このパラメータは NULL にできる。
ppSacl : [var] 返されるセキュリティ記述子内の SACL へのポインタを受け取る変数へのポインタ。返されるポインタは SACL_SECURITY_INFORMATION フラグを設定した場合にのみ有効である。SACL が不要な場合、このパラメータは NULL にできる。
ppSecurityDescriptor : [var] オブジェクトのセキュリティ記述子へのポインタを受け取る変数へのポインタ。ポインタの使用が終わったら、LocalFree 関数を呼び出して返されたバッファを解放する。ppsidOwner、ppsidGroup、ppDacl、または ppSacl のいずれか一つでも NULL でない場合、このパラメータは必須である。

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

解説

ハンドルで指定したオブジェクトのセキュリティ記述子のコピーを取得する。

[戻り値]
関数が成功した場合、戻り値は ERROR_SUCCESS となる。失敗した場合、戻り値は WinError.h
で定義されるゼロ以外のエラーコードとなる。

[備考]
ppsidOwner、ppsidGroup、ppDacl、ppSacl パラメータが NULL でなく、SecurityInfo
パラメータがそれらをオブジェクトから取得するよう指定している場合、それらのパラメータは ppSecurityDescriptor
で返されるセキュリティ記述子内の対応するパラメータを指す。オブジェクトのセキュリティ記述子から所有者、グループ、または DACL
を読み取るには、ハンドルを開いたときに呼び出し元プロセスが READ_CONTROL
アクセスを付与されている必要がある。READ_CONTROL
アクセスを取得するには、呼び出し側がオブジェクトの所有者であるか、オブジェクトの DACL
がそのアクセスを許可している必要がある。セキュリティ記述子から SACL を読み取るには、ハンドルを開いたときに呼び出し元プロセスが
ACCESS_SYSTEM_SECURITY
アクセスを付与されている必要がある。このアクセスを取得する適切な方法は、呼び出し元の現在のトークンで SE_SECURITY_NAME
特権を有効にし、ACCESS_SYSTEM_SECURITY
アクセスでハンドルを開き、その後で特権を無効にすることである。特権を有効にすることのセキュリティ上の意味については Running
with Special Privileges を参照。GetSecurityInfo 関数は次の種類のオブジェクトで使用できる。
(以下省略)

情報

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