GetServiceDirectory-Funktion (winsvc.h)
Gibt einen Pfad für einen Pro-Dienst-Dateisystemspeicherort zurück, an den ein Dienst lesen und/oder schreiben kann.
Syntax
DWORD GetServiceDirectory(
SERVICE_STATUS_HANDLE hServiceStatus,
SERVICE_DIRECTORY_TYPE eDirectoryType,
PWCHAR lpPathBuffer,
DWORD cchPathBufferLength,
DWORD *lpcchRequiredBufferLength
);
Parameter
hServiceStatus
Ein Handle für die status Informationsstruktur für den aktuellen Dienst. Dieses Handle wird von der RegisterServiceCtrlHandler-Funktion zurückgegeben.
eDirectoryType
Ein Member der SERVICE_DIRECTORY_TYPE-Enumeration , die den Typ des abzurufenden Verzeichnispfads pro Dienst identifiziert.
lpPathBuffer
Ein vom Aufrufer zugeordneter Puffer, in den die Pfadzeichenfolge kopiert wird. Bei NULL schlägt der Funktionsaufruf mit ERROR_INSUFFICIENT_BUFFER fehl und gibt die erforderliche Pufferlänge in WCHARs in lpcchRequiredBufferLength zurück. Wenn nicht NULL, sollte die Länge des Puffers in cchPathBufferLength angegeben werden. Wenn der Pfad geschrieben wird, wird NULL beendet.
cchPathBufferLength
Die Länge des in lpPathBuffer bereitgestellten Puffers in Einheiten von WCHARS. Dieses Argument wird ignoriert, wenn lpPathBuffer NULL ist.
lpcchRequiredBufferLength
Dieser Wert wird auf die erforderliche Länge des Puffers in Einheiten von WCHARs festgelegt. Diese Länge enthält das endende NULL-Zeichen.
Rückgabewert
Gibt ERROR_SUCCESS zurück, wenn alle Vorgänge erfolgreich abgeschlossen wurden und der NULL-beendete Zustandspfad in lpPathBuffer geschrieben wird. Gibt ERROR_INSUFFICIENT_BUFFER zurück, wenn lpPathBuffer nicht groß genug war, um den Zustandspfad zu enthalten, oder wenn lpPathBuffer NULL war. In diesem Fall wird die erforderliche Pufferlänge in WCHARs über lpcchRequiredBufferLength zurückgegeben. Wenn ein anderer Fehler auftritt, wird ein Win32-Fehlercode zurückgegeben.
Hinweise
Für ServiceDirectoryPersistentState ist die Sicherheit des Verzeichnisses so festgelegt, dass nur Schreibzugriff auf das lokale Systemkonto und die Dienst-SID bereitgestellt wird. Stellen Sie sicher, dass Dienst-SIDs für jeden Dienst aktiviert sind, der diese API aufruft. Weitere Informationen finden Sie unter SERVICE_SID_INFO.
Eine ähnliche API, die den Dienststatus bereitstellt, der für zugeordnete Programme freigegeben werden kann, finden Sie unter GetSharedServiceDirectory.
Alle Dienststatusverzeichnisse werden vom Dienststeuerungs-Manager gelöscht, sobald der Dienst deinstalliert wird.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 10, Version 2004 (10.0; Build 19041) |
Unterstützte Mindestversion (Server) | Windows Server, Version 2004 (10.0; Build 19041) |
Kopfzeile | winsvc.h |
Bibliothek | Onecore.lib |