Ich weiß ich nerve

Sehr seltsame Sache muss man sagen:
Delphi-Quellcode:
procedure WriteToMMF(Filename: PChar; Data: Pointer; Len: Integer);
var
hFile: Cardinal;
Mem: Pointer;
begin
hFile := CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE, 0, Len +1, Filename);
if hFile <> 0 then
begin
Mem := MapViewOfFile(hFile, FILE_MAP_WRITE, 0, 0, 0);
CopyMemory(Mem, Data, Len);
end;
//CloseHandle(hFile);
end;
function ReadFromMMF(Filename: PChar; Size: Integer): Pointer;
var
hFile: Cardinal;
begin
hFile := CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE, 0, Size, Filename);
if hFile <> 0 then
begin
Result := MapViewOfFile(hFile, FILE_MAP_READ, 0, 0, 0);
end
else
begin
Result := nil;
end;
CloseHandle(hFile);
end;
Es kommt eine
AV bei CopyMemory im WriteToMMF Teil, wenn ich das Programm auf einer VM starte. Sehr komisch ist noch, dass es auf meinem normalen System funktioniert. Und das sogar, wenn ich CopyMemory auskommentiere

Kann ich mir nicht erklären, denke aber mal, dass da mein Fehler liegt.
ARGH

Ich habs .. heureka

Mein Programm hat sich teilweise geschlossen, befor mein RemoteThread auf die Daten zugegriffen hat. Ein simples WaitForSingleObject hats getan.