OpenFileMappingFromApp 函数 (memoryapi.h)

打开命名文件映射对象。

语法

HANDLE OpenFileMappingFromApp(
  [in] ULONG  DesiredAccess,
  [in] BOOL   InheritHandle,
  [in] PCWSTR Name
);

parameters

[in] DesiredAccess

对文件映射对象的访问。 针对目标文件映射对象上的任何安全描述符检查此访问。 有关值列表,请参阅 文件映射安全性和访问权限。 仅当应用具有 codeGeneration 功能时,才能打开文件映射对象以FILE_MAP_EXECUTE访问。

[in] InheritHandle

如果此参数为 TRUE,则 CreateProcess 函数创建的进程可以继承句柄;否则,无法继承句柄。

[in] Name

要打开的文件映射对象的名称。 如果文件映射对象具有此名称的打开句柄,并且映射对象上的安全描述符与 DesiredAccess 参数不冲突,则打开操作会成功。 名称可以具有“Global”或“Local”前缀,以显式打开全局命名空间或会话命名空间中的对象。 名称的其余部分可以包含除反斜杠字符 (\) 以外的任何字符。 有关详细信息,请参阅 内核对象命名空间。 使用终端服务会话实现快速用户切换。 第一个登录用户使用会话 0,下一个登录用户使用会话 1,依此。 内核对象名称必须遵循终端服务概述的准则,以便应用程序可以支持多个用户。

返回值

如果函数成功,则返回值是指定文件映射对象的打开句柄。

如果函数失败,则返回值为 NULL。 要获得更多的错误信息,请调用 GetLastError。

注解

可以通过实时 (JIT) 功能从 Windows 应用商店应用调用 OpenFileMappingFromApp 以使用 JIT 功能。 应用必须在应用清单文件中包含 codeGeneration 功能才能使用 JIT 功能。 OpenFileMappingFromApp 允许 Windows 应用商店应用在.NET Framework中使用 MemoryMappedFile 类。

OpenFileMappingFromApp 返回的句柄可以与需要文件映射对象句柄的任何函数一起使用。

通过映射视图修改文件时,上次修改时间戳可能不会自动更新。 如果需要,调用方应使用 SetFileTime 设置时间戳。

当不再需要时,调用方应通过调用 CloseHandle 调用 OpenFileMappingFromApp 返回的句柄释放。

要求

   
最低受支持的客户端 Windows 10 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2016 [桌面应用 |UWP 应用]
目标平台 Windows
标头 memoryapi.h (包括 Windows.h)
Library WindowsApp.lib
DLL Kernel32.dll

另请参阅

CreateFileMapping

文件映射函数

内存管理函数

OpenFileMapping

共享文件和内存