Einzelnen Beitrag anzeigen

tgt

Registriert seit: 4. Nov 2003
Ort: Hamburg
6 Beiträge
 
#1

CreateEvent / OpenEvent = Access denied

  Alt 4. Nov 2003, 10:28
Hallo,

Ich hab folgendes Problem:

Ich habe ein Service und eine GUI. Die beiden Applikationen verständigen sich über FileMapping um Daten auszutauschen. Dabei werden die Lese und Schreibe Operationen durch Windows-"Events" ausgelößt.

Nun zum Problem:

Der Service läuft Standardgemäß unter dem User SYSTEM, wobei die GUI im Kontext des aktuellen Users läuft. Jedesmal wenn einer der Anwendungen versucht mit dem anderen zu kommunizieren und dabei die Events auslößt gibt es eine "Access denied (Zugriff verweigert)" Fehlerrückgabe.

Sobald der Service im Debug Modus (also in der Konsole) läuft, funktioniert alles perfekt (ist ja auch klar, läuft im selben Sicherheitskontext wie die GUI).

Folgendermaßen sind die Events augebaut:
Delphi-Quellcode:
In der GUI:
const
   MMF_SERVEREVENT = 'Global\spsevent';
   MMF_CLIENTEVENT = 'Global\spcevent';

hCEvent := CreateEvent(nil, False, False, MMF_SERVEREVENT);
hSEvent := OpenEvent(SYNCHRONIZE, False, MMF_CLIENTEVENT);

Im Service (ist in C geschrieben):

hSEvent = OpenEvent(SYNCHRONIZE, FALSE, MMF_SERVEREVENT);
hCEVent = CreateEvent(NULL, FALSE, FALSE, MMF_CLIENTEVENT);
Das Problem ist wohl, das der Service, bzw die GUI, keine Rechte hat, mit dem Gegenüber zu kommunizieren. Hat jemand eine Ahnung wie ich die Rechte für diese setzen kann ?

CreateEvent(pSecurityAttr,... ) Die GUI soll unter jedem User mit dem Service kommunizieren. Egal welche Rechte dieser hat.

Gruss,

Andi
------------------------------------------
http://www.securepoint.de
  Mit Zitat antworten Zitat