次の方法で共有


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できます。この場合、関数は EXPLICIT_ACCESS エントリに基づいて新しい ACL を作成します。

[out] NewAcl

新しい ACL へのポインターを受け取る変数へのポインター。 関数が成功した場合は、LocalFree 関数を呼び出して、返されたバッファーを解放する必要があります。

戻り値

関数が成功した場合、関数はERROR_SUCCESSを返します。

関数が失敗した場合、WinError.h で定義された 0 以外のエラー コードが返されます。

備考

EXPLICIT_ACCESS 構造体の配列内の各エントリは、指定されたトラスティのアクセス制御または監査制御情報を指定します。 トラスティには、ユーザー、グループ、またはその他の セキュリティ識別子 (SID) 値 (ログオン識別子 やログオンの種類 (Windows サービスやバッチ ジョブなど) など) を指定できます。 名前または SID を使用してトラスティを識別できます。

SetEntriesInAcl 関数を使用して、随意アクセス制御リスト (DACL) または システム アクセス制御リスト (SACL) の アクセス制御エントリ (ACE) の一覧を変更できます。 SetEntriesInAcl では、同じ ACLにアクセス制御と監査制御情報を混在させないように注意してください。ただし、結果の ACL には意味のないエントリが含まれます。

DACL の場合、EXPLICIT_ACCESS 構造体の grfAccessMode メンバーは、トラスティのアクセス権を許可、拒否、または取り消すかどうかを指定します。 このメンバーは、次のいずれかの値を指定できます。

  • GRANT_ACCESS
  • SET_ACCESS
  • DENY_ACCESS
  • REVOKE_ACCESS
これらの値の詳細については、ACCESS_MODEを参照してください。

SetEntriesInAcl 関数は、新しいアクセス拒否 ACE を新しい ACLの ACE の一覧の先頭に配置します。 この関数は、既存のアクセス許可 ACE の直前に、新しいアクセス許可 ACE を配置します。

SACL の場合、EXPLICIT_ACCESS 構造体の grfAccessMode メンバーは、次の値を指定できます。

  • REVOKE_ACCESS
  • SET_AUDIT_FAILURE
  • SET_AUDIT_SUCCESS
SET_AUDIT_FAILUREとSET_AUDIT_SUCCESSを組み合わせることができます。 これらの値の詳細については、ACCESS_MODEを参照してください。

SetEntriesInAcl 関数は、新しい ACL の ACE の一覧の先頭に新しいシステム監査 ACE を配置します。

この関数を使用する例については、「オブジェクト の ACL の変更」または「新しいオブジェクト のセキュリティ記述子の作成」または「オブジェクト所有権の取得」を参照してください。

手記

aclapi.h ヘッダーは、SetEntriesInAcl をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリ |UWP アプリ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリ |UWP アプリ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー aclapi.h
ライブラリ Advapi32.lib
DLL Advapi32.dll

関連項目

ACCESS_ALLOWED_ACE

ACCESS_DENIED_ACE

ACL

アクセス制御の

基本的なアクセス制御関数の

EXPLICIT_ACCESS

LocalFree

SYSTEM_AUDIT_ACE