文件映射安全性和访问权限

使用Windows安全模型可以控制对文件映射对象的访问。 有关详细信息,请参阅 访问控制模型

调用 CreateFileMapping函数时,可以指定文件映射对象的安全描述符。 如果指定 NULL, 则对象将获取默认安全描述符。 文件映射对象的默认安全描述符中的 ACL 来自创建者的主令牌或模拟令牌。

若要检索文件映射对象的安全描述符,请调用 GetNamedSecurityInfoGetSecurityInfo 函数。 若要设置文件映射对象的安全描述符,请调用 SetNamedSecurityInfoSetSecurityInfo 函数。

文件映射对象的有效访问权限包括 DELETE、READ _ CONTROL、WRITE _ DACWRITE _ OWNER 标准访问权限。 文件映射对象不支持 SYNCHRONIZE 标准访问权限。 下表列出了特定于文件映射对象的访问权限。

访问权限 含义
文件 _ 映射 _ 所有 _ 访问 包括对文件映射对象的所有访问权限,FILE MAP _ EXECUTE _ 除外MapViewOfFileMapViewOfFileEx函数对此的处理方式与指定 FILE MAP WRITE _ _ 相同
文件 _ 映射 _ EXECUTE 允许映射文件映射对象的可执行视图。 对象必须已使用允许执行访问的页面保护创建,例如 PAGE EXECUTE _ _ READ、PAGE EXECUTE _ _ WRITECOPYPAGE EXECUTE _ _ READWRITE 保护。
文件 _ 映射 _ 读取 允许映射文件映射对象的只读视图或写入时复制视图。
文件 _ 映射 _ 写入 允许映射文件映射对象的只读视图、写入时复制视图或读/写视图。 必须使用允许写入访问的页面保护(如 PAGE _ READWRITE 或 PAGE EXECUTE _ _ READWRITE 保护)创建对象。

映射文件映射对象的写入时复制视图需要与映射只读视图相同的访问权限。 FILE _ MAP _ COPY 标志不是访问权限,不应在安全描述符中将其指定为 DACL 的一部分。 此值只能用于映射文件映射对象视图的函数(如 MapViewOfFileMapViewOfFileEx 函数)或 OpenFileMapping 函数,该函数处理 FILE MAP _ _ COPY 的方式与处理 FILE MAP _ _ READ 的方式相同。

如果要读取或写入对象的 SACL,可以请求对文件映射对象的 ACCESS _ SYSTEM _ SECURITY 访问权限。 有关详细信息,请参阅 访问控制列表 (ACL) SACL 访问权限