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

Weitere Informationen

RegisterServiceCtrlHandler

GetSharedServiceDirectory

SERVICE_SID_INFO