SetEntriesInAclA 関数 (aclapi.h)
SetEntriesInAcl 関数は、新しいアクセス制御または監査制御情報を既存の ACL 構造にマージすることによって、新しい アクセス制御リスト (ACL) を作成します。
構文
DWORD SetEntriesInAclA(
[in] ULONG cCountOfExplicitEntries,
[in, optional] PEXPLICIT_ACCESS_A pListOfExplicitEntries,
[in, optional] PACL OldAcl,
[out] PACL *NewAcl
);
パラメーター
[in] cCountOfExplicitEntries
pListOfExplicitEntries 配列内の EXPLICIT_ACCESS 構造体の数。
[in, optional] pListOfExplicitEntries
既存の ACL にマージするアクセス制御情報を記述する EXPLICIT_ACCESS 構造体の配列へのポインター。
[in, optional] OldAcl
既存の ACL へのポインター。 このパラメーターは NULL
[out] NewAcl
新しい ACL へのポインターを受け取る変数へのポインター。 関数が成功した場合は、LocalFree 関数を呼び出して、返されたバッファーを解放する必要があります。
戻り値
関数が成功した場合、関数はERROR_SUCCESSを返します。
関数が失敗した場合、WinError.h で定義された 0 以外のエラー コードが返されます。
備考
EXPLICIT_ACCESS 構造体の配列内の各エントリは、指定されたトラスティのアクセス制御または監査制御情報を指定します。 トラスティには、ユーザー、グループ、またはその他の セキュリティ識別子 (SID) 値 (ログオン識別子 やログオンの種類 (Windows サービスやバッチ ジョブなど) など) を指定できます。 名前または SID を使用してトラスティを識別できます。
SetEntriesInAcl 関数を使用して、随意アクセス制御リスト (DACL) または システム アクセス制御リスト (SACL) の アクセス制御エントリ (ACE) の一覧を変更できます。 SetEntriesInAcl
DACL の場合、EXPLICIT_ACCESS 構造体の grfAccessMode メンバーは、トラスティのアクセス権を許可、拒否、または取り消すかどうかを指定します。 このメンバーは、次のいずれかの値を指定できます。
- GRANT_ACCESS
- SET_ACCESS
- DENY_ACCESS
- REVOKE_ACCESS
SetEntriesInAcl 関数は、新しいアクセス拒否 ACE を新しい ACLの ACE の一覧の先頭に配置します。 この関数は、既存のアクセス許可 ACE の直前に、新しいアクセス許可 ACE を配置します。
SACL の場合、EXPLICIT_ACCESS 構造体の grfAccessMode メンバーは、次の値を指定できます。
- REVOKE_ACCESS
- SET_AUDIT_FAILURE
- SET_AUDIT_SUCCESS
SetEntriesInAcl 関数は、新しい ACL の ACE の一覧の先頭に新しいシステム監査 ACE を配置します。
例
この関数を使用する例については、「
手記
aclapi.h ヘッダーは、SetEntriesInAcl をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリ |UWP アプリ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリ |UWP アプリ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | aclapi.h |
ライブラリ | Advapi32.lib |
DLL | Advapi32.dll |