访问权限和访问掩码

访问权限是一个位标志,它对应于线程可以在安全对象上执行的特定操作集。 例如,注册表项具有 KEY_SET_VALUE 访问权限,这对应于线程在密钥下设置值的能力。 如果一个线程尝试对一个对象执行操作,但对对象没有必要的访问权限,则系统不会执行该操作。

访问掩码是一个 32 位值,其位对应于对象支持的访问权限。 所有 Windows 安全对象都使用访问掩码格式,该格式包括以下类型访问权限的位:

当线程尝试打开对象的句柄时,该线程通常指定访问掩码来 请求一组访问权限。 例如,需要设置和查询注册表项值的应用程序可以使用访问掩码来请求 KEY_SET_VALUE 和 KEY_QUERY_VALUE 访问权限来打开密钥。

下表显示了用于操作每种安全对象的安全信息函数。

对象类型 安全描述符函数
NTFS 文件系统上的文件或目录 GetNamedSecurityInfoSetNamedSecurityInfoGetSecurityInfoSetSecurityInfo
命名管道匿名管道
GetSecurityInfoSetSecurityInfo
控制台屏幕缓冲区 不支持。
线程 进程
GetSecurityInfoSetSecurityInfo
文件映射对象 GetNamedSecurityInfoSetNamedSecurityInfoGetSecurityInfoSetSecurityInfo
访问令牌 SetKernelObjectSecurityGetKernelObjectSecurity
窗口管理对象(窗口工作站桌面 GetSecurityInfoSetSecurityInfo
注册密钥 GetNamedSecurityInfoSetNamedSecurityInfoGetSecurityInfoSetSecurityInfo
Windows 服务 GetNamedSecurityInfoSetNamedSecurityInfoGetSecurityInfoSetSecurityInfo
本地或远程打印机 GetNamedSecurityInfoSetNamedSecurityInfoGetSecurityInfoSetSecurityInfo
网络共享 GetNamedSecurityInfoSetNamedSecurityInfoGetSecurityInfoSetSecurityInfo
进程间同步对象(事件、互斥体、信号灯和可等待计时器) GetNamedSecurityInfoSetNamedSecurityInfoGetSecurityInfoSetSecurityInfo
作业对象 GetNamedSecurityInfoSetNamedSecurityInfoGetSecurityInfoSetSecurityInfo