BuildSecurityDescriptorW

新しいセキュリティ記述子を割り当てて初期化する。(Unicode)

BuildSecurityDescriptorW pOwner, pGroup, cCountOfAccessEntries, pListOfAccessEntries, cCountOfAuditEntries, pListOfAuditEntries, pOldSD, pSizeNewSD, pNewSD

pOwner : [var] 新しいセキュリティ記述子の所有者を識別する TRUSTEE 構造体へのポインタ。構造体が TRUSTEE_IS_NAME 形式を使用している場合、BuildSecurityDescriptor は指定したトラスティ名に関連付けられた SID を検索する。
pGroup : [var] 新しいセキュリティ記述子のプライマリグループ SID を識別する TRUSTEE 構造体へのポインタ。構造体が TRUSTEE_IS_NAME 形式を使用している場合、BuildSecurityDescriptor は指定したトラスティ名に関連付けられた SID を検索する。
cCountOfAccessEntries : [int] pListOfAccessEntries 配列内の EXPLICIT_ACCESS 構造体の数。
pListOfAccessEntries : [var] 新しいセキュリティ記述子の DACL に対するアクセス制御情報を記述する EXPLICIT_ACCESS 構造体の配列へのポインタ。関数は、配列内の情報を pOldSD 内の DACL(あれば)とマージして新しい DACL を作成する。pOldSD が NULL か、pOldSD の DACL が NULL の場合、関数は配列内の情報のみに基づいて新しい DACL を作成する。EXPLICIT_ACCESS 構造体の配列から ACL を作成するルールの説明については、SetEntriesInAcl 関数を参照のこと。
cCountOfAuditEntries : [int] pListOfAuditEntries 配列内の EXPLICIT_ACCESS 構造体の数。
pListOfAuditEntries : [var] 新しいセキュリティ記述子の SACL に対する監査制御情報を記述する EXPLICIT_ACCESS 構造体の配列へのポインタ。関数は、配列内の情報を pOldSD 内の SACL(あれば)とマージして新しい SACL を作成する。pOldSD が NULL か、pOldSD の SACL が NULL の場合、関数は配列内の情報のみに基づいて新しい SACL を作成する。
pOldSD : [int] 既存の自己相対 SECURITY_DESCRIPTOR 構造体とそれに関連するセキュリティ情報へのポインタ。関数は、指定した所有者、グループ、アクセス制御、監査制御の情報をこのセキュリティ記述子内の情報とマージすることで新しいセキュリティ記述子を構築する。このパラメータは NULL にできる。
pSizeNewSD : [var] セキュリティ記述子のサイズ(バイト単位)を受け取る変数へのポインタ。
pNewSD : [var] 新しいセキュリティ記述子へのポインタを受け取る変数へのポインタ。関数は新しいセキュリティ記述子用のメモリを確保する。返されたバッファを解放するには LocalFree 関数を呼び出す必要がある。

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

解説

新しいセキュリティ記述子を割り当てて初期化する。(Unicode)

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

[備考]
BuildSecurityDescriptor
関数は、独自のオブジェクトに対してセキュリティを実装または公開する信頼できるサーバを対象としている。本関数は、ストリームへのシリアライズやディスクへの保存に適した自己相対セキュリティ記述子を使用する。
> [!NOTE] > aclapi.h ヘッダは、BuildSecurityDescriptor を UNICODE
プリプロセッサ定数の定義に基づいて ANSI 版または Unicode
版を自動選択するエイリアスとして定義している。エンコーディング中立のエイリアスとエンコーディング中立でないコードを混在させると、コンパイルエラーや実行時エラーを引き起こす不一致が生じる可能性がある。詳細は
[Conventions for Function
Prototypes](/windows/win32/intl/conventions-for-function-prototypes)
を参照のこと。

情報

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