创建文件映射函数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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 高德地图的标志放大_高德地图点标注的分布与缩放

    高德地图的标志放大_高德地图点标注的分布与缩放本文介绍了在ReactNative平板开发中使用高德地图组件的一个案例,重点介绍了如何计算并缩放到所需状态,以及地图Webview与ReactNative通信的方式。欢迎关注我的专栏:熵与单子的代码本。在数据可视化展示系统中,地理信息系统(GIS)组件已经几乎是必备的了。GIS组件通过地图的形式直观地展现数据项在地理上的分部,以地图上点标注(Marker)的颜色、大小…

  • pcharm激活码_通用破解码

    pcharm激活码_通用破解码,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 编写测试用例的思路_用例测试方法

    编写测试用例的思路_用例测试方法前言用过pytest的小伙伴都知道,pytest的运行方式是非常丰富的,可以说是你想怎么运行怎么运行,想运行哪些运行哪些,那httprunner是否同样可以呢?运行用例的各种方式运行指定路径的用

  • PHP中Array的hash函数实现

    PHP中Array的hash函数实现

  • Postman教程大全「建议收藏」

    Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件Postman背景介绍用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。今天给大家介绍的这款网页调试工具不仅可以调试简单的css、html、脚本等简单的网页基本信息,它还可以发送几乎所有类型的HTTP请求!Postman在发送网络HTTP请求方面可以说是Chrome插件类产品中的代表产品之一。Postman的操

  • oracle数据库的拼接字符串,Oracle数据库拼接字符串

    oracle数据库的拼接字符串,Oracle数据库拼接字符串Ora-03113\Ora-03114与OracleIn拼接字符串的问题刚深入接触Oracle不久(大学里以及刚参加工作时学到的Oracle知识只能算是皮毛),因为之前使用SqlServer有将近两年的时间,对SqlServer相对来说很熟悉,比较而言,Oracle真心很…oracle数据库分割字符串返回结果集函数CREATEORREPLACEFUNCTION…

发表回复

您的电子邮箱地址不会被公开。

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