SetServiceObjectSecurity-Funktion (winsvc.h)
[SetServiceObjectSecurity ist für die Verwendung in den Betriebssystemen verfügbar, die im Abschnitt Anforderungen angegeben sind. Es kann in nachfolgenden Versionen geändert oder entfernt werden. Verwenden Sie stattdessen die SetNamedSecurityInfo-Funktion .]
Die SetServiceObjectSecurity-Funktion legt den Sicherheitsdeskriptor eines Dienstobjekts fest.
Syntax
BOOL SetServiceObjectSecurity(
[in] SC_HANDLE hService,
[in] SECURITY_INFORMATION dwSecurityInformation,
[in] PSECURITY_DESCRIPTOR lpSecurityDescriptor
);
Parameter
[in] hService
Ein Handle für den Dienst. Dieses Handle wird von der OpenService- oder CreateService-Funktion zurückgegeben. Der für dieses Handle erforderliche Zugriff hängt von den Sicherheitsinformationen ab, die im dwSecurityInformation-Parameter angegeben sind.
[in] dwSecurityInformation
Gibt die komponenten des festzulegenden Sicherheitsdeskriptors an. Für diesen Parameter ist eine Kombination der folgenden Werte gültig. Beachten Sie, dass Flags, die nicht von SetServiceObjectSecurity verarbeitet werden, unbeaufsichtigt ignoriert werden.
Wert | Bedeutung |
---|---|
|
Legt die diskretionäre Zugriffssteuerungsliste (DACL) des -Objekts fest. Das von hService angegebene Handle muss über WRITE_DAC Zugriff verfügen, oder der aufrufende Prozess muss der Besitzer des Objekts sein. |
|
Legt die primäre Gruppensicherheits-ID (SID) des -Objekts fest. Das von hService angegebene Handle muss über WRITE_OWNER Zugriff verfügen, oder der aufrufende Prozess muss der Besitzer des Objekts sein. |
|
Legt die SID des Besitzers des -Objekts fest. Das von hService angegebene Handle muss über WRITE_OWNER Zugriff verfügen, oder der aufrufende Prozess muss besitzer des Objekts sein oder das SE_TAKE_OWNERSHIP_NAME-Recht aktiviert haben. |
|
Legt die Systemzugriffssteuerungsliste (SACL) des -Objekts fest. Das von hService angegebene Handle muss ACCESS_SYSTEM_SECURITY Zugriff haben.
So erhalten Sie ACCESS_SYSTEM_SECURITY Zugriff
|
[in] lpSecurityDescriptor
Ein Zeiger auf eine SECURITY_DESCRIPTOR Struktur, die die neuen Sicherheitsinformationen enthält.
Rückgabewert
Wenn die Funktion erfolgreich ist, gibt die Funktion nonzero zurück.
Wenn die Funktion fehlschlägt, gibt sie null zurück. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Die folgenden Fehlercodes können vom Dienststeuerungs-Manager festgelegt werden. Andere Fehlercodes können von den Registrierungsfunktionen festgelegt werden, die vom Dienststeuerungs-Manager aufgerufen werden.
Rückgabecode | Beschreibung |
---|---|
|
Das angegebene Handle wurde nicht mit dem erforderlichen Zugriff geöffnet, oder der aufrufende Prozess ist nicht der Besitzer des Objekts. |
|
Der angegebene Handle ist ungültig. |
|
Die angegebenen Sicherheitsinformationen oder Sicherheitsbeschreibungen sind ungültig. |
|
Der angegebene Dienst wurde zum Löschen markiert. |
Hinweise
Die SetServiceObjectSecurity-Funktion legt die angegebenen Teile des Sicherheitsdeskriptors des Dienstobjekts basierend auf den im Puffer lpSecurityDescriptor angegebenen Informationen fest. Diese Funktion ersetzt eine oder alle sicherheitsrelevanten Informationen, die dem Dienstobjekt zugeordnet sind, entsprechend den flags, die im dwSecurityInformation-Parameter festgelegt sind und den Zugriffsrechten des aufrufenden Prozesses unterliegen.
Wenn ein Dienst erstellt wird, weist der Dienststeuerungs-Manager dem Dienstobjekt eine Standardsicherheitsbeschreibung zu. Um eine Kopie des Sicherheitsdeskriptors für ein Dienstobjekt abzurufen, rufen Sie die QueryServiceObjectSecurity-Funktion auf. Eine Beschreibung der Standardsicherheitsbeschreibung für ein Dienstobjekt finden Sie unter Dienstsicherheit und Zugriffsrechte.
Beachten Sie, dass das Gewähren bestimmter Zugriffe für nicht vertrauenswürdige Benutzer (z. B. SERVICE_CHANGE_CONFIG oder SERVICE_STOP) es ihnen ermöglichen kann, die Ausführung Ihres Diensts zu beeinträchtigen und ihnen möglicherweise die Ausführung von Anwendungen unter dem LocalSystem-Konto zu ermöglichen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winsvc.h (einschließen von Windows.h) |
Bibliothek | Advapi32.lib |
DLL | Advapi32.dll |