Einzelnen Beitrag anzeigen

Sequitar

Registriert seit: 8. Jan 2016
74 Beiträge
 
Delphi 10.4 Sydney
 
#1

Memory mapped files - Ist ein offset zugriff möglich?

  Alt 3. Jun 2021, 15:00
Ich habe eine einfache Inter-prozess-Kommunikation mittels MMF. Dabei habe ich einen geteilten "Namespace", der die einzelnen MMFs eindeutig addressierbar macht.
Unabhängig davon würde ich gerne innerhalb einer einzigen MMF verschiedene Bereiche ansprechen. Ich dachte, das geht einfach mit folgendem:

Delphi-Quellcode:
type mydata=record
 //..
end;
//...
Mem := MapViewOfFile(Memsharehandle^, FILE_MAP_WRITE
      { FILE_MAP_ALL_ACCESS { both read and write } ,0, 0, Size);//->>dwfileoffsethi=0,dwfileoffsetlo=0
// copy the data
CopyMemory(Mem, MyData, { Sizeof(Mydata^) } Size);
Ich hab gelesen, dass die Offsets ein vielfaches der standard Allokationsgrößse des OS (Hier win64) sein müssen,
allerdings kann ich keine offsets<>0 festlegen, ohne Access-Violations im anschließsenden CopyMemory zu produzieren. (Eigentlich klar, wenn ich einen falschen Adressbereich kopieren möchte)

die Frage ist also, Kann ich denn hier mithilfe der beiden offsets zwischen verschiedenen positionen innerhalb einer MMF springen und so unterschiedliche Bereiche der MMF beschreiben / abfragen?

Danke
  Mit Zitat antworten Zitat