SetSecurityInfo

指定したオブジェクトのセキュリティ記述子に、指定したセキュリティ情報を設定する。呼び出し側はハンドルによってオブジェクトを識別する。

SetSecurityInfo handle, ObjectType, SecurityInfo, psidOwner, psidGroup, pDacl, pSacl

handle : [intptr] セキュリティ情報を設定する対象のオブジェクトへのハンドル。
ObjectType : [int] handle パラメータで識別されるオブジェクトの種類を示す SE_OBJECT_TYPE 列挙のメンバ。
SecurityInfo : [int] 設定するセキュリティ情報の種類を示すビットフラグの集合。このパラメータには SECURITY_INFORMATION ビットフラグの組み合わせを指定できる。
psidOwner : [int] オブジェクトの所有者を識別する SID へのポインタ。SID は、セキュリティ記述子の所有者 SID として割り当て可能なものでなければならない。SecurityInfo パラメータには OWNER_SECURITY_INFORMATION フラグが含まれている必要がある。所有者 SID を設定しない場合、このパラメータは NULL にできる。
psidGroup : [int] オブジェクトのプライマリグループを識別する SID へのポインタ。SecurityInfo パラメータには GROUP_SECURITY_INFORMATION フラグが含まれている必要がある。プライマリグループ SID を設定しない場合、このパラメータは NULL にできる。
pDacl : [var] オブジェクトの新しい DACL へのポインタ。このパラメータは、SecurityInfo パラメータの値に DACL_SECURITY_INFORMATION フラグが含まれない限り無視される。SecurityInfo パラメータの値に DACL_SECURITY_INFORMATION フラグが含まれ、このパラメータの値が NULL に設定されている場合、オブジェクトへの完全アクセスがすべてのユーザに付与される。NULL DACL の詳細については、DACL の作成を参照のこと。
pSacl : [var] オブジェクトの新しい SACL へのポインタ。SecurityInfo パラメータは、SACL_SECURITY_INFORMATION、LABEL_SECURITY_INFORMATION、ATTRIBUTE_SECURITY_INFORMATION、SCOPE_SECURITY_INFORMATION、または BACKUP_SECURITY_INFORMATION のいずれかのフラグを含んでいる必要がある。SACL_SECURITY_INFORMATION または SCOPE_SECURITY_INFORMATION を設定する場合、呼び出し側は SE_SECURITY_NAME 特権を有効にしている必要がある。SACL を設定しない場合、このパラメータは NULL にできる。

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

解説

指定したオブジェクトのセキュリティ記述子に、指定したセキュリティ情報を設定する。呼び出し側はハンドルによってオブジェクトを識別する。

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

[備考]
オブジェクトの任意アクセス制御リスト (DACL) またはシステムアクセス制御リスト (SACL) の要素を設定する場合、システムは
ACE 継承規則に従って、継承可能なアクセス制御エントリ (ACE) を既存の子オブジェクトに自動的に伝播する。
SetSecurityInfo 関数は以下の種類のオブジェクトに使用できる:
(以下省略)

情報

プラグイン / モジュール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