Über Benutzergrenzen hinaus (dazu zählen auch Services und elevated Prozesse) geht es nur, wenn du die lpMutexAttributes initialisierst.
Delphi-Quellcode:
var
FSA: SECURITY_ATTRIBUTES;
FSD: SECURITY_DESCRIPTOR;
begin
InitializeSecurityDescriptor(@FSD, SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(@FSD, true, nil, false);
FSA.lpSecurityDescriptor := @FSD;
FSA.nLength := sizeof(SECURITY_ATTRIBUTES);
FSA.bInheritHandle := true;
Wie es beim
Mutex mit dem Namen aussieht, weiß ich grade nicht sicher. Bei Events muss der Name zusätzlich ein "Global\" Prefix beinhalten. Steht aber sicher was im
MSDN.