BuildSecurityDescriptorA 関数 (aclapi.h)
BuildSecurityDescriptor 関数は、新しい セキュリティ記述子を割り当てて初期化します。 この関数は、指定したセキュリティ情報を既存のセキュリティ記述子の情報とマージすることで、新しいセキュリティ記述子を初期化できます。 既存のセキュリティ記述子を指定しない場合、関数は指定されたセキュリティ情報に基づいて新しいセキュリティ記述子を初期化します。
BuildSecurityDescriptor 関数は、の自己相対セキュリティ記述子を作成します。 自己相対形式により、セキュリティ記述子はストリームに格納するのに適しています。
構文
DWORD BuildSecurityDescriptorA(
[in, optional] PTRUSTEE_A pOwner,
[in, optional] PTRUSTEE_A pGroup,
[in] ULONG cCountOfAccessEntries,
[in, optional] PEXPLICIT_ACCESS_A pListOfAccessEntries,
[in] ULONG cCountOfAuditEntries,
[in, optional] PEXPLICIT_ACCESS_A pListOfAuditEntries,
[in, optional] PSECURITY_DESCRIPTOR pOldSD,
[out] PULONG pSizeNewSD,
[out] PSECURITY_DESCRIPTOR *pNewSD
);
パラメーター
[in, optional] pOwner
新しいセキュリティ記述子の所有者を識別する のトラスティ 構造体へのポインター。 構造体がTRUSTEE_IS_NAME形式を使用する場合、BuildSecurityDescriptor
このパラメーターが NULL
[in, optional] pGroup
新しいセキュリティ記述子のプライマリ グループ SID を識別する のトラスティ 構造体へのポインター。 構造体で TRUSTEE_IS_NAME フォームを使用する場合は、BuildSecurityDescriptor
このパラメーターが NULL
[in] cCountOfAccessEntries
pListOfAccessEntries 配列内の EXPLICIT_ACCESS 構造体の数。
[in, optional] pListOfAccessEntries
新しいセキュリティ記述子の 随意アクセス制御リスト (DACL) のアクセス制御情報を記述する EXPLICIT_ACCESS 構造体の配列へのポインター。 この関数は、配列内の情報を pOldSD内の DACL
[in] cCountOfAuditEntries
pListOfAuditEntries 配列内の EXPLICIT_ACCESS 構造体の数。
[in, optional] pListOfAuditEntries
新しいセキュリティ記述子の SACL の監査制御情報を記述する EXPLICIT_ACCESS 構造体の配列へのポインター。 この関数は、配列内の情報を pOldSD内の SACL
[in, optional] pOldSD
既存の自己相対 SECURITY_DESCRIPTOR 構造とそれに関連付けられているセキュリティ情報へのポインター。 この関数は、指定した所有者、グループ、アクセス制御、および監査制御の情報をこのセキュリティ記述子の情報とマージすることによって、新しいセキュリティ記述子を構築します。 このパラメーターは NULL
[out] pSizeNewSD
セキュリティ記述子のサイズ (バイト単位) を受け取る変数へのポインター。
[out] pNewSD
新しいセキュリティ記述子へのポインターを受け取る変数へのポインター。 この関数は、新しいセキュリティ記述子にメモリを割り当てます。 返されたバッファーを解放するには、LocalFree 関数を呼び出す必要があります。
戻り値
関数が成功した場合、関数はERROR_SUCCESSを返します。
関数が失敗した場合、WinError.h で定義された 0 以外のエラー コードが返されます。
備考
BuildSecurityDescriptor 関数は、独自のオブジェクトにセキュリティを実装または公開する信頼されたサーバーを対象としています。 この関数は、信頼されたサーバーが必要とする場合があるため、ストリームへのシリアル化とディスクへの格納に適した自己相対セキュリティ記述子を使用します。
手記
aclapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして BuildSecurityDescriptor を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | aclapi.h |
ライブラリ | Advapi32.lib |
DLL | Advapi32.dll |
関連項目
SID の