![]() |
Semaphore / Mutex -- Systemweit(=benutzerkontenunabhängig) ?
Hi,
Ich bräuchte ein Mutex/Semaphore, das systemweite Gültigkeit hat, d.h. es muss auch über Benutzerkonten(-Grenzen) hinweg gültig sein. Leider sind meine Erfahrungen zu diesem Thema recht gering und meine bisherigen Versuche mit den hier zu findenden Codebeispielen sind auch alle fehlgeschlagen(=haben nicht den gewünschten Erfolg gehabt). MfG |
Re: Semaphore / Mutex -- Systemweit(=benutzerkontenunabhängi
Was willst du erreichen? Wozu brauchst du das?
|
Re: Semaphore / Mutex -- Systemweit(=benutzerkontenunabhängi
Es handelt sich bei dem Ganzen um ein Steuerprogramm für meinen Router, das aus Performance-Gründen auf jedem PC nur einmal laufen sollte. Zum Starten steht es momentan im Autostartordner, wodurch es bei jedem Login eines Benutzers gestartet wird. Es würde aber reichen, wenn es nur bei ersten Mal gestartet wird und bei den folgenden Logins lediglich in den Vordergrund geholt wird.
Im Prinzip täte es auch eine Art Service mit Interface. Ich bin für alle Lösungsvorschläge offen :mrgreen: |
Re: Semaphore / Mutex -- Systemweit(=benutzerkontenunabhängi
Zitat:
Ich denke, daß du eventuell den DACL so setzen mußt, daß er auch Zugriff aus anderen Benutzerkonten erlaubt. Nachtrag: Der NULL-DACL setzt eben nur Zugriff fürs aktuelle Benutzerkonto. Ergo mußt du den DACL selber setzen wie benötigt. |
Re: Semaphore / Mutex -- Systemweit(=benutzerkontenunabhängi
Zitat:
Zitat:
Könntest du mir erläutern, was darunter zu verstehen ist? |
Re: Semaphore / Mutex -- Systemweit(=benutzerkontenunabhängi
Zitat:
"Discretionary ACL" Der DACL ist zuständig dafür, daß Zugriffe beschränkt oder freigegeben werden. Die Vergabe von Rechten ist viel feinkörniger als bei Standard-Unix, wo aber auch bereits Erweiterungen für ACLs existieren. ACLs kann man für so ziemlich jedes Objekt in Windows vergeben. ACL wiederum heißt Access Control List. Neben dem DACL gibt es noch den SACL (System ACL, welcher zuständig ist für Zugriffsüberwachung). Schau mal hier (C-Deklaration):
Code:
Achte immer auf den Parameter mit den "Security Attributes". Dort übergibst du auch den DACL, SACL usw.
HANDLE CreateMutex(
[color=red]LPSECURITY_ATTRIBUTES lpMutexAttributes,[/color] BOOL bInitialOwner, LPCTSTR lpName ); |
Re: Semaphore / Mutex -- Systemweit(=benutzerkontenunabhängi
hm, Ich muss also den "benötigten" DACL an der rot markierten Stelle einsetzen, soweit so klar. Nur, wo krieg ich den her?
|
Re: Semaphore / Mutex -- Systemweit(=benutzerkontenunabhängi
Zitat:
Um einen SD aufzubauen und alles was enthalten ist, gibt es eine ganze Litanei and Funktionen, die erst ab Windows 2000 stabil benutzbar ist, wo wiederum die SDDL die bessere Lösung wäre. Unter anderem gibt es folgende Funktionen: GetSecurityDescriptorControl, GetSecurityDescriptorDacl, GetSecurityDescriptorGroup, GetSecurityDescriptorLength, GetSecurityDescriptorOwner, GetSecurityDescriptorSacl, IsValidSecurityDescriptor, SECURITY_DESCRIPTOR, SetSecurityDescriptorDacl, SetSecurityDescriptorGroup, SetSecurityDescriptorOwner, SetSecurityDescriptorSacl Es gibt kommerzielle Komponenten um die Arbeit mit SDs, ACLs usw. zu vereinfachen, freie sind mir nicht bekannt. Ansonsten suche mal in der DP nach den Namen der Funktionen. Ich bin mir ziemlich sicher, daß unlängst ein Beispiel gepostet wurde, wo die Funktionen in Aktion waren. Ich denke von sakura. Ich werde selber nochmal suchen, ansonsten schreibe ihm mal eine PN. Kann mich aber auch täuschen. |
Re: Semaphore / Mutex -- Systemweit(=benutzerkontenunabhängi
Oje, das kann ja was werden ... Ich befürchte das Ganze übersteigt meine Kenntnisse um einiges.
Ich glaube ich nehme es hin, dass die Performance etwas leidet und verzichte auf größere Eingriffe. In meinem Fall würden die Kosten den Nutzen weit übersteigen. Vielen Dank für deine Bemühungen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz