(wdm.h) 的 ACL 结构
ACL 结构是访问控制列表的标头 (ACL) 。 完整的 ACL 包含 ACL 结构,后跟 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
在 16 位边界上对齐 AclRevision 成员的零字节填充。
AclSize
ACL 的大小(以字节为单位)。 此值包括 ACL 结构和所有 ACE。
AceCount
ACL 中存储的 ACE 数。
Sbz2
在 32 位边界上对齐 ACL 结构的两个零字节填充。
注解
ACL 包含零个或多个 ACE 的顺序列表。 ACL 中的各个 ACE 的编号从 0 到 n,其中 n+1 是 ACL 中的 ACE 数。 编辑 ACL 时,驱动程序通过其索引引用 ACL 中的 ACE。
有两种类型的 ACL:自由裁量和系统。
可自由裁量 ACL (DACL) 由对象的所有者或授予WRITE_DAC访问该对象的任何人控制。 它指定特定的用户和组对对象的访问权限。 例如,文件的所有者可以使用 DACL 来控制哪些用户和组可以和不能访问该文件。
对象还可以具有与之关联的系统级安全信息,其形式为系统 ACL (SACL) 由系统管理员控制。 SACL 可以允许系统管理员审核任何获取对象访问权限的尝试。
当前定义了三个 ACE 结构:
Attribute | 说明 |
---|---|
ACCESS_ALLOWED_ACE | 向用户或组授予指定权限。 此 ACE 存储在 DACL 中。 |
ACCESS_DENIED_ACE | 拒绝用户或组的指定权限。 此 ACE 存储在 DACL 中。 |
SYSTEM_AUDIT_ACE | 指定将导致系统级审核的访问类型。 此 ACE 存储在 SACL 中。 |
目前不支持第四个 ACE 结构(SYSTEM_ALARM_ACE)。
应将 ACL 结构视为不透明结构,驱动程序不应尝试直接使用其成员。 为了确保 ACL 在语义上正确,驱动程序可以使用“另请参阅”部分中列出的函数来创建和操作 ACL。
ACL 和 ACE 结构必须在 32 位边界上对齐。
要求
要求 | 值 |
---|---|
Header | wdm.h (包括 Wdm.h) |