OpenFileMappingA 函数 (winbase.h)

打开命名的文件映射对象。

语法

HANDLE OpenFileMappingA(
  [in] DWORD  dwDesiredAccess,
  [in] BOOL   bInheritHandle,
  [in] LPCSTR lpName
);

参数

[in] dwDesiredAccess

对文件映射对象的访问。 针对目标文件映射对象上的任何安全描述符检查此访问。 有关值列表,请参阅 文件映射安全和访问权限

[in] bInheritHandle

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

[in] lpName

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

返回值

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

如果函数失败,则返回值 NULL。 若要获取扩展的错误信息,请调用 GetLastError

言论

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

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

不再需要时,调用方应释放 OpenFileMapping 返回的句柄,并调用 CloseHandle

在 Windows Server 2012 中,以下技术支持此函数。

科技 支持
服务器消息块 (SMB) 3.0 协议 是的
SMB 3.0 透明故障转移 (TFO) 是的
具有横向扩展文件共享的 SMB 3.0 (SO) 是的
群集共享卷文件系统 (CsvFS) 是的
可复原文件系统 (ReFS) 是的
 

例子

有关示例,请参阅 创建命名共享内存

要求

要求 价值
最低支持的客户端 Windows XP [仅限桌面应用]
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
目标平台 窗户
标头 winbase.h (包括 Windows.h、Memoryapi.h)
Kernel32.lib
DLL Kernel32.dll

另请参阅

CreateFileMapping

文件映射函数

内存管理功能

共享文件和内存