创建文件映射函数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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 进程调度有可抢占 哪种开销更大_什么时候用多线程什么时候用多进程

    进程调度有可抢占 哪种开销更大_什么时候用多线程什么时候用多进程线程调度为什么比进程调度更少开销?在对比进程调度与线程调度的开销前,我们需要明白两点:进程与线程的差异任务调度的开销进程与线程的差异我们首先要明白,线程和进程有什么关系?从概念上来讲,线程是进程的一部分,只是任务调度相关的部分,所以我们才说,“线程是调度的最小单位”。进程拥有着资源,这些资源不属于某一个特定线程,因为所有线程共享进程拥有的资源,所以我们才说,“进程是资源分配的最小单位…

    2025年11月11日
    3
  • LinkedList浅析

    LinkedList浅析LinkedList简介LinkedList是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList实现List接口,能对它进行队列操作。LinkedList实现Deque接口,即能将LinkedList当作双端队列使用。LinkedList实现了Cloneable接口,即覆盖了函数clon…

    2022年6月29日
    33
  • 华为手机如何把大量照片导入到电脑上去_华为手机照片批量导入电脑

    华为手机如何把大量照片导入到电脑上去_华为手机照片批量导入电脑在华为手机和电脑上同时安装华为手机助手,然后进入手机系统的关于手机,连续点击版本号5次,打开开发者模式。步骤阅读步骤阅读2用数据线把手机插入电脑主机,点击传输文件。步骤阅读3手机界面弹出

    2022年8月4日
    9
  • 8000401a 因为配置标志不正确 错误及解决办法

    8000401a 因为配置标志不正确 错误及解决办法解决办法:如果是64位的office运行dcomcnfg打开组件服务如果是32位的office,则运行comexp.msc-32打开组件服务依次展开”组件服务”->“计算机”->“我的电脑”->“DCOM配置”找到”MicrosoftExcel应用程序”或”MicrosoftWord应用程序”,点击”安全”选项卡,依次把”启动和激活权限”,”访问权限”都选择为自定义,然后依次点击它们的编辑,把NetworkService和IIS_IUSRS添加进去,并加入所有的权限…

    2022年7月25日
    16
  • linux启动nginx命令_linuxzip解压命令

    linux启动nginx命令_linuxzip解压命令1,首先找到nginx的安装目录whichnginx会找到对应的目录,如图2,查看进程是否存在ps-ef|grepnginx3,杀死进程kill-QUIT1282强制停止kill-912824,进入到nginx的sbin目录,启动nginxcd/usr/local/nginx/sbin/./nginx./nginx-sstop./nginx-squit./nginx-sreload4,但是上面这个..

    2022年10月6日
    3
  • 一文读懂 SIP 协议

    一文读懂 SIP 协议SIP 是由 IETF 制定的多媒体通信协议 广泛应用于 CS NGN 以及 IMS 的网络中 可以支持并应用于语音 视频 数据等多媒体业务 同时也可以应用于 Presence 呈现 InstantMessa 即时消息 等特色业务 可以说 有 IP 网络的地方就有 SIP 协议的存在 SIP 是类似于 HTTP SIP 可以减少应用特别是高级应用的开发时间 由于 基于 IP 协议的 SIP 利用了 IP 网络 固定网运营商也会逐渐认识到 SIP 技术对于他们的远意义

    2025年6月14日
    6

发表回复

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

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