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 |
另请参阅
内存管理功能