ACL 構造体 (wdm.h)

ACL 構造体は、アクセス制御リスト (ACL) のヘッダーです。 完全な ACL は、ACL 構造の後に、0 個以上のアクセス制御エントリ (ACE) の順序付きリストで構成されます。

構文

typedef struct _ACL {
  UCHAR  AclRevision;
  UCHAR  Sbz1;
  USHORT AclSize;
  USHORT AceCount;
  USHORT Sbz2;
} ACL;

メンバー

AclRevision

ACL のリビジョン レベル。

Microsoft Windows NT 4.0 以前: この値はACL_REVISIONする必要があります。

Microsoft Windows 2000 以降: この値は、ACL_REVISIONまたはACL_REVISION_DSできます。 ACL にオブジェクト固有の ACE が含まれている場合は、ACL_REVISION_DSする必要があります。

Sbz1

AclRevision メンバーを 16 ビット境界にアラインするパディングの 0 バイト。

AclSize

ACL のサイズ (バイト単位)。 この値には、ACL 構造体とすべての ACE の両方が含まれます。

AceCount

ACL に格納されている ACE の数。

Sbz2

32 ビット境界で ACL 構造体をアラインする 2 つのゼロ バイトのパディング。

注釈

ACL には、0 個以上の ACE のシーケンシャル リストが含まれています。 ACL 内の個々の ACE には 0 から n の番号が付けられます。 n+1 は ACL 内の ACE の数です。 ACL を編集する場合、ドライバーは ACL 内の ACE をインデックスで参照します。

ACL には、随意とシステムの 2 種類があります。

随意 ACL (DACL) は、オブジェクトの所有者、またはオブジェクトへのアクセスを許可されたユーザー WRITE_DAC制御されます。 特定のユーザーおよびグループがオブジェクトに対して持つことができるアクセス権を指定します。 たとえば、ファイルの所有者は DACL を使用して、ファイルにアクセスできるユーザーとグループを制御できます。

オブジェクトには、システム管理者によって制御されるシステム ACL (SACL) の形式で、システム レベルのセキュリティ情報が関連付けられている場合もあります。 SACL を使用すると、システム管理者はオブジェクトへのアクセスの試行を監査できます。

現在、3 つの ACE 構造体が定義されています。

属性 説明
ACCESS_ALLOWED_ACE 指定した権限をユーザーまたはグループに付与します。 この ACE は DACL に格納されます。
ACCESS_DENIED_ACE ユーザーまたはグループに対する指定された権限を拒否します。 この ACE は DACL に格納されます。
SYSTEM_AUDIT_ACE システム レベルの監査の原因となるアクセスの種類を指定します。 この ACE は SACL に格納されます。
 

現在、4 つ目の ACE 構造体 (SYSTEM_ALARM_ACE) はサポートされていません。

ACL 構造体は不透明であるかのように扱われるため、ドライバーはメンバーを直接操作しないようにする必要があります。 ACL が意味的に正しいことを確認するために、ドライバーは「関連項目」セクションに記載されている関数を使用して ACL を作成および操作できます。

ACL および ACE 構造体は、32 ビット境界に配置する必要があります。

要件

要件
Header wdm.h (Wdm.h を含む)

こちらもご覧ください

ACCESS_ALLOWED_ACE

ACCESS_DENIED_ACE

エース

RtlAddAccessAllowedAce

RtlCreateAcl

RtlGetAce

RtlSetDaclSecurityDescriptor

SYSTEM_ALARM_ACE

SYSTEM_AUDIT_ACE

TOKEN_DEFAULT_DACL