访问权限和访问掩码

访问权限是一个位标志,它对应于线程可以对安全对象执行的一组特定操作。 例如,注册表项具有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