Home » Tutorials » Systemnahe Programmierung » Prozesskommunikation mittels Memory Mapped Files

Prozesskommunikation mittels Memory Mapped Files

MMF erstellen/öffnen

Für das Erstellen und Öffnen einer MapFile sind lediglich 2 Funktionen erforderlich.
Die Windows API stellt die Funktionen hierzu zur Verfügung:

type TData = Packed Record
      Data1: Integer;
      Data2: String[20];
  end;
  PTData = ^TData;
...

var  MapHandle: Handle;
        PData: PTData;
...
MapHandle := CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE, 0, Sizeof(TData), 'MyMapFile');
if MapHandle > 0 then
  PData := MapViewOfFile(MapHandle, FILE_MAP_ALL_ACCESS, 0, 0, 0);

Mit der Funktion CreateFileMapping wird die MapFile erstellt oder falls schon vorhanden geöffnet. Die Parameter sollten selbsterklärend sein. Die Größe der MapFile muss beim Erstellen bereits bekannt sein. Die Funktion MapViewOfFile liefert den direkten Zugriff auf den Speicherbereich mittels eines Pointers auf diesen.