创建文件映射函数CreateFileMapping中第一个参数设置成0xFFFFFFFF

创建文件映射函数CreateFileMapping中第一个参数设置成0xFFFFFFFF创建文件内存映射:HANDLEhMySharedMapFile=CreateFileMapping((HANDLE)0xFFFFFFFF),NULL,PAGE_READWRITE,0,0x1000,"MySharedMem");其中第一个参数文件句柄设置成0XFFFFFFFF代表什么意思呢?0XFFFFFFFF在内存中又是什么意思呢?为什么要把文件句柄设置成0XFF…

大家好,又见面了,我是你们的朋友全栈君。创建文件内存映射:

HANDLE hMySharedMapFile=CreateFileMapping((HANDLE)0xFFFFFFFF),

NULL,PAGE_READWRITE,0,0x1000,”MySharedMem”);

其中第一个参数文件句柄设置成0XFFFFFFFF代表什么意思呢?

0XFFFFFFFF在内存中又是什么意思呢?

为什么要把文件句柄设置成0XFFFFFFFF???

网友回复:句柄设置成0XFFFFFFFF表示在内存中开辟一块区域。

网友回复:就是在内存中建立,而不是使用盘上的某个文件啊

网友回复:内存映射API函数CreateFileMapping创建一个有名的共享内存:

HANDLE CreateFileMapping(

HANDLE hFile, // 映射文件的句柄,

//设为0xFFFFFFFF以创建一个进程间共享的对象

LPSECURITY_ATTRIBUTES lpFileMappingAttributes, // 安全属性

DWORD flProtect, // 保护方式

DWORD dwMaximumSizeHigh, //对象的大小

DWORD dwMaximumSizeLow,

LPCTSTR lpName // 必须为映射文件命名

);

网友回复: 要把文件映像到内存,首先必须调用CreateFileMapping()函数,它需要用一个由CreateFile()函数打开并返回的文件句柄,对大多数共享内存应用程序,必须把此句柄设置为0xFFFFFFFF,用来指定系统页面文件。通过使用上面的特殊句柄,可以不调用CreateFile函数,当然在完成时,也不必有一个内存的磁盘文件拷贝。

网友回复:0XFFFFFFFF是INVALID_HANDLE_VALUE,表示不指定文件,在系统分页文件(pagefile.sys)中分配映射的磁盘空间。

网友回复:If hFile is (HANDLE)0xFFFFFFFF, the calling process must also specify a mapping object size in the dwMaximumSizeHigh and dwMaximumSizeLow parameters. The function creates a file-mapping object of the specified size backed by the operating-system paging file rather than by a named file in the file system. The file-mapping object can be shared through duplication, through inheritance, or by name.

网友回复:MSDN:

If hFile is INVALID_HANDLE_VALUE, the calling process must also specify a size for the file mapping object in the dwMaximumSizeHigh and dwMaximumSizeLow parameters. In this scenario, CreateFileMapping creates a file mapping object of a specified size that is backed by the system paging file instead of by a file in the file system.

INVALID_HANDLE_VALUE就是-1即0xffffffff

网友回复:实际上是用于进程间通信的,以共享内存的方式。

网友回复:-1

hFile

Handle to the file from which to create a mapping object. The file must be opened with an access mode compatible with the protection flags specified by the flProtect parameter. It is recommended, though not required, that files you intend to map be opened for exclusive access.

If hFile is (HANDLE)0xFFFFFFFF, the calling process must also specify a mapping object size in the dwMaximumSizeHigh and dwMaximumSizeLow parameters. The function creates a file-mapping object of the specified size backed by the operating-system paging file rather than by a named file in the file system. The file-mapping object can be shared through duplication, through inheritance, or by name.

本篇文章来源于 IT者 | www.itzhe.cn 原文链接:http://itzhe.cn/news/20080923/231975.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145837.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 中国十大技术社区你都知道哪些?

    中国十大技术社区你都知道哪些?社区是聚集一类具有相同爱好或者相同行业的群体,IT技术社区就是聚集了IT行业内的技术人,在技术社区可以了解到行业的最新进展,学习最前沿的技术,认识有相同爱好的朋友,在一起…

    2022年5月21日
    199
  • window下phpstudy的nginx配置虚拟主机

    window下phpstudy的nginx配置虚拟主机

    2021年10月15日
    52
  • Android学习(简单使用Bottom Navigation Activity来实现底部导航栏)

    Android学习(简单使用Bottom Navigation Activity来实现底部导航栏)在我们实际编写程序时,不必每一个activity都要从零开始,利用好系统自带的模板往往可以起到事半功倍的效果。下面我们就来看看如何使用BottomNavigationActivity来完成简单的底部导航栏功能。先来看一下效果图吧:创建activity首先在创建面板,我们选择然后next,finish就OK了。创建成功以后我们来运行一下,发现已经基本实现了底部导航栏的功能了!但是还没有结…

    2025年6月16日
    0
  • 免费的ASP.NET AJAX 培训

    免费的ASP.NET AJAX 培训  好久没有写blog了,在这里感慨一下先 ;-))  最近BradAbrams 做了个关于ajax的E-Learning ,内容通俗易懂,估计这个教程2个小时可以完成。在学Ajax的朋友不妨看一下;点击here ,关于这个elearning的详细信息FreeASP.NETAJAXOnlineTraining在这里也郁闷一下,在asp.netajax1.0中列表

    2022年9月11日
    0
  • vr的开发流程_vr虚拟现实 需要设备

    vr的开发流程_vr虚拟现实 需要设备http://www.unitymanual.com/forum.php?mod=viewthread&tid=31034 原文出自游戏蛮牛本文介绍虚拟现实项目开发流程,共大家参考与学习,也希望各位提出意见…通过将现实中真实存在的构建在虚拟平台上,使得用户可以不在受时间、地点、位置和区域的限制来完成一些操作。=================================开发流程=

    2022年9月13日
    0
  • 如何嗅闻交换网络和ARP骗子-ARP解释的原则

    如何嗅闻交换网络和ARP骗子-ARP解释的原则

    2022年1月11日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号