访问权限和访问掩码

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

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

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

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

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