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