Memory Mapped Files

This article is intended to extend the idea of Inter Process Communication with a Memory Mapped File object by using a class that handles that memory object (or any memory) as a memory pool, a "heap". This class, CAllocationHandler, creates a layout of that memory consisting of a header, an allocation table, and a memory area where the allocated memory blocks resides. Those memory blocks may be moved by the class during the allocation/deallocation calls, so the memory blocks are mainly handled using "memory handles".

To directly access a memory block, it must be locked through this handle. The memory handle can also be transferred between processes that uses the same Memory Mapped File object and used to access the data.

The archive AllocationHandler_src contains the class files
  • AllocationHandler.h
  • AllocationHandler.cpp
  • AllocationHandler.inl
and the article (a plain text file)
  • AllocationHandler.txt
The archive AllocationHandler_demo contains a simple Console application that demonstrates the use of CAllocationHandler by simulating two producer threads of data allocated on the "heap", then saving the memory handles in a CList that is periodically checked by a consumer thread.

Downloads

Download demo project - 7 Kb
Download source - 15 Kb


Comments

  • Deadlocks!

    Posted by Legacy on 02/16/2004 12:00am

    Originally posted by: Raymond Lee

    The code seems to deadlock all the time on my machine (Win2K Pro). I haven't tried to debug it. Looks like a good piece of code otherwise!

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Do you know where your data is? Consumer cloud-based file sharing services store your sensitive company data on servers outside of your control, outside of your policy and regulatory guidelines – maybe even outside your country – and not managed by you. The potential for data leakage, security breaches, and harm to your business is enormous. Download this white paper to learn about file sync and share alternatives that allow you to manage and protect your sensitive data while integrating and …

  • With 81% of employees using their phones at work, companies have stopped asking: "Is corporate data leaking from personal devices?" and started asking: "How do we effectively prevent corporate data from leaking from personal devices?" The answer has not been simple. ZixOne raises the bar on BYOD security by not allowing email data to reside on the device. In addition, Zix allows employees to maintain complete control of their personal device, therefore satisfying privacy demands of valued employees and the …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds