Das mag ja sein, aber dies bezieht sich eigentlich auf [S|G]et[Named]SecurityInfo. Da kannst du nur den gewünschten Teil ändern. Aber für das Erstellen eines Objektes musst du etwas mehr tun, da sonst der SD anders aussieht als wenn man nil angeben würde. Das könnte sich auf den Zugriff auswirken. Siehe angehängtes Bild.
Ach übrigens:
p.s.
Habe eben festgestellt dass wenn ich meine App als Admin starte alles glatt durchgeht. Ist leider keine Lösung.
Seltsam, dass es mit Admin geht, denn dieser Code: ...
Delphi-Quellcode:
FSA.lpSecurityDescriptor := @FSD;
... sollte so aussehen:
Delphi-Quellcode:
FSA.lpSecurityDescriptor := FSD;
Dann klappt es auch mit der Pipe, denn FSD ist doch schon ein Zeiger auf einen SD.
Interessant ist aber auch, dass ein nachträgliches Ändern des Integrity Labels, wie in diesem Kapitel
Lowering Resource Integrity (bitte die Suche benutzen) nicht mit NamedPipes funktioniert (Fehler 5 : Zugriff verweigert), jedoch mit Dateien und MemoryMappedFiles (andere habe ich nicht weiter ausprobiert).