Einzelnen Beitrag anzeigen

MicAlter

Registriert seit: 29. Aug 2007
12 Beiträge
 
#1

[GELÖST] Komm. Service <-> App via Shared Memory

  Alt 30. Okt 2009, 15:52
Hallo zusammen,

ich stehe gerade auf dem Schlauch und vielleicht hat ja jemand eine Idee:

Ich habe zwei Anwendungen, einen Dienst und eine Applikation, welche via SharedMemory Informationen austauschen.
So weit so gut, es läuft unter NT,2000 und XP problemlos.

Jetzt geht es um Windows 2003 Server.
Dort kann ich nämlich nicht auf den vom Service erstellten SharedMemory zugreifen.

Das Erstellen des Speichers erfolgt so:

Delphi-Quellcode:
constructor TSharedMem.Create(const Name: PChar; Size: Integer);
var LastError: Integer;
    LastErrorMsg : String;
begin
  try
    FName := string(Name);
    FSize := Size;
    { CreateFileMapping, when called with $FFFFFFFF for the hanlde value,
      creates a region of shared memory }

    FHandle := CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE, 0, Size, Name);
    if FHandle = 0 then abort;
    LastError := GetLastError;
    if LastError <> 0 then
       LastErrorMsg := SysErrorMessage(LastError);

    FCreated := LastError = 0;
    { We still need to map a pointer to the handle of the shared memory region }
    FFileView := MapViewOfFile(FHandle, FILE_MAP_WRITE, 0, 0, Size);
    if FFileView = nil then abort;
  except
    Error(Format('Error creating shared memory %s (%s)', [Name, SysErrorMessage(GetLastError)]));
  end;
end;
Ich gehe mal davon aus, dass das "nil" im lpFileMappingAttributes-Parameter dafür verantwortlich ist.
Leider habe ich da zu wenig Erfahrung, hat jemand ein Tipp, wie ich die Rechte entsprechend "erweitern" kann?

lg,
Michael
  Mit Zitat antworten Zitat