ACCESS_MASK

ACCESS_MASK数据类型是定义标准、特定和泛型权限的 DWORD 值。 这些权限用于 访问控制条目 (ACE),是指定对对象的请求或授予访问权限的主要方法。

typedef DWORD ACCESS_MASK;
typedef ACCESS_MASK* PACCESS_MASK;

注解

此值中的位分配如下:

比特 Meaning
0-15 特定权限。 包含特定于与掩码关联的对象类型的访问掩码。 有关不同对象类型的访问权限的链接,请参阅 Object-Specific 访问权限。
16-23 标准权限。 包含对象的标准访问权限。
24 访问系统安全性(ACCESS_SYSTEM_SECURITY)。 它用于指示对 系统访问控制列表 (SACL)的访问。 这种类型的访问需要调用过程具有 SE_SECURITY_NAME (管理审核和安全日志)权限。 如果在审核访问 ACE 的访问掩码中设置了此标志(成功或失败的访问),将审核 SACL 访问。
二十五 允许的最大(MAXIMUM_ALLOWED)。
26-27 预留。
28 全部通用(GENERIC_ALL)。
二十九 泛型执行(GENERIC_EXECUTE)。
30 泛型写入(GENERIC_WRITE)。
31 泛型读取(GENERIC_READ)。

标准权限位(16 到 23)包含对象的标准访问权限,可以是以下预定义标志的组合:

Bit Flag Meaning
16 删除 删除访问权限。
17 READ_CONTROL 读取对安全描述符的所有者、组和 自由访问控制列表 (DACL)的访问权限。
18 WRITE_DAC 对 DACL 的写入访问权限。
19 WRITE_OWNER 对所有者的写入访问权限。
20 SYNCHRONIZE 同步访问权限。

Winnt.h 中定义的以下常量表示特定和标准访问权限。

#define DELETE                           (0x00010000L)
#define READ_CONTROL                     (0x00020000L)
#define WRITE_DAC                        (0x00040000L)
#define WRITE_OWNER                      (0x00080000L)
#define SYNCHRONIZE                      (0x00100000L)

#define STANDARD_RIGHTS_REQUIRED         (0x000F0000L)

#define STANDARD_RIGHTS_READ             (READ_CONTROL)
#define STANDARD_RIGHTS_WRITE            (READ_CONTROL)
#define STANDARD_RIGHTS_EXECUTE          (READ_CONTROL)

#define STANDARD_RIGHTS_ALL              (0x001F0000L)

#define SPECIFIC_RIGHTS_ALL              (0x0000FFFFL)

Object-Specific 访问权限

ACCESS_MASK的低 16 位(位 0-15)用于特定于对象的访问权限。 这些位的含义取决于要访问的对象的类型。 有关特定对象类型的访问权限的详细信息,请参阅以下主题:

常见对象类型

  • 文件和目录 - 文件访问权限常量
    定义特定的访问权限,例如FILE_READ_DATA、FILE_WRITE_DATA、FILE_APPEND_DATA、FILE_EXECUTE、FILE_DELETE_CHILD、FILE_READ_ATTRIBUTES和FILE_WRITE_ATTRIBUTES。
  • 注册表项 - 注册表项安全和访问权限 定义特定的访问权限,例如KEY_QUERY_VALUE、KEY_SET_VALUE、KEY_CREATE_SUB_KEY、KEY_ENUMERATE_SUB_KEYS和KEY_NOTIFY。
  • 过程 - 处理安全和访问权限
    定义特定的访问权限,例如PROCESS_TERMINATE、PROCESS_CREATE_THREAD、PROCESS_VM_OPERATION、PROCESS_VM_READ、PROCESS_VM_WRITE、PROCESS_QUERY_INFORMATION和PROCESS_SET_INFORMATION。
  • 线程 - 线程安全性和访问权限
    定义特定的访问权限,例如THREAD_TERMINATE、THREAD_SUSPEND_RESUME、THREAD_GET_CONTEXT、THREAD_SET_CONTEXT、THREAD_QUERY_INFORMATION和THREAD_SET_INFORMATION。

其他对象类型

有关安全对象及其访问权限的综合列表,请参阅 “访问权限和访问掩码”。

要求

Requirement 价值
支持的最低客户端 Windows XP [仅限桌面应用]
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
Header Winnt.h (包括 Windows.h

存取控制

基本访问控制结构

访问权限和访问掩码

GENERIC_MAPPING