ACCESS_MASK结构是一个包含标准,特定和通用权限的双字值。这些权限用于访问控制条目(ACE),并且是指定对对象的请求或授予的访问权限的主要方法。
typedef DWORD ACCESS_MASK;
该值中的位分配如下:
位 | 含义 |
0到15 | 具体权利。包含与掩码相关联的对象类型特定的访问掩码。 |
16到23 | 标准权利。包含对象的标准访问权限,可以是以下预定义标志的组合: |
位 | 旗 | 含义 | |
16 | DELETE | 删除访问 | |
17 | READ_CONTROL | 读取对安全描述符的所有者,组和任意访问控制列表(ACL)的访问权限 | |
18 | WRITE_DAC | 对自由访问控制列表(ACL)的写访问权限 | |
19 | WRITE_OWNER | 写访问所有者 | |
20 | SYNCHRONIZE | Windows NT:同步访问 |
位 | 含义 |
24 | 访问系统安全(ACCESS_SYSTEM_SECURITY)。该标志不是典型的访问类型。它用于指示对系统ACL的访问。这种类型的访问需要调用进程具有特定的权限。 |
25 | 最高允许(MAXIMUM_ALLOWED) |
26到27 | 保留的 |
28 | 全部(GENERIC_ALL) |
29 | 通用执行(GENERIC_EXECUTE) |
30 | 通用写(GENERIC_WRITE) |
31 | 通用阅读(GENERIC_READ) |
以下常量表示特定和标准访问权限:
#define SPECIFIC_RIGHTS_ALL 0x0000FFFF
#define STANDARD_RIGHTS_REQUIRED 0x000F0000
#define STANDARD_RIGHTS_ALL 0x001F0000
也可以看看