SetEntriesInAclW

既存の ACL 構造体に新しいアクセス制御情報または監査制御情報をマージして、新しいアクセス制御リスト (ACL) を作成する。(Unicode)

SetEntriesInAclW cCountOfExplicitEntries, pListOfExplicitEntries, OldAcl, NewAcl

cCountOfExplicitEntries : [int] pListOfExplicitEntries 配列内の EXPLICIT_ACCESS 構造体の数。
pListOfExplicitEntries : [var] 既存の ACL にマージするアクセス制御情報を記述する EXPLICIT_ACCESS 構造体の配列へのポインタ。
OldAcl : [var] 既存の ACL へのポインタ。このパラメータは NULL にできる。その場合、関数は EXPLICIT_ACCESS エントリに基づいて新しい ACL を作成する。
NewAcl : [var] 新しい ACL へのポインタを受け取る変数へのポインタ。関数が成功した場合、返されたバッファを解放するために LocalFree 関数を呼び出す必要がある。

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

解説

既存の ACL 構造体に新しいアクセス制御情報または監査制御情報をマージして、新しいアクセス制御リスト (ACL)
を作成する。(Unicode)

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

[備考]
EXPLICIT_ACCESS 構造体の配列内の各エントリは、指定された受託者 (trustee)
に対するアクセス制御または監査制御情報を指定する。受託者は、ユーザ、グループ、またはログオン識別子やログオン種別(たとえば Windows
サービスやバッチジョブ)などのその他のセキュリティ識別子 (SID) 値にできる。受託者を識別するには、名前または SID
を使用できる。SetEntriesInAcl 関数を使用して、任意アクセス制御リスト (DACL) またはシステムアクセス制御リスト
(SACL) 内のアクセス制御エントリ (ACE) のリストを変更できる。SetEntriesInAcl は同一の ACL
内でアクセス制御情報と監査制御情報が混在することを防がない点に注意のこと。ただし、その結果生じる ACL
は意味のないエントリを含むことになる。DACL の場合、EXPLICIT_ACCESS 構造体の grfAccessMode
メンバは、受託者に対するアクセス権を許可、拒否、または取り消すかを指定する。このメンバには次のいずれかの値を指定できる:
(以下省略)

情報

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