Partager via


GetServiceDirectory, fonction (winsvc.h)

Retourne un chemin d’accès pour un emplacement de système de fichiers par service dans lequel un service doit lire et/ou écrire l’état.

Syntaxe

DWORD GetServiceDirectory(
  SERVICE_STATUS_HANDLE  hServiceStatus,
  SERVICE_DIRECTORY_TYPE eDirectoryType,
  PWCHAR                 lpPathBuffer,
  DWORD                  cchPathBufferLength,
  DWORD                  *lpcchRequiredBufferLength
);

Paramètres

hServiceStatus

Handle de la structure d’informations status pour le service actuel. Ce handle est retourné par la fonction RegisterServiceCtrlHandler .

eDirectoryType

Membre de l’énumération SERVICE_DIRECTORY_TYPE qui identifie le type de chemin d’accès au répertoire par service à récupérer.

lpPathBuffer

Mémoire tampon allouée à l’appelant dans laquelle la chaîne de chemin d’accès sera copiée. Si la valeur est NULL, l’appel de fonction échoue avec ERROR_INSUFFICIENT_BUFFER et retourne la longueur de mémoire tampon requise, dans WCHAR, dans lpcchRequiredBufferLength. Si la valeur n’est pas NULL, la longueur de la mémoire tampon doit être spécifiée dans cchPathBufferLength. Le chemin d’accès, s’il est écrit, est terminé par null.

cchPathBufferLength

Longueur de la mémoire tampon fournie dans lpPathBuffer, en unités de WCHARS. Cet argument est ignoré si lpPathBuffer a la valeur NULL.

lpcchRequiredBufferLength

Cette valeur est définie sur la longueur requise de la mémoire tampon, en unités de WCHAR. Cette longueur inclut le caractère NULL de fin.

Valeur retournée

Retourne ERROR_SUCCESS lorsque toutes les opérations se terminent correctement et que le chemin d’état terminé par NULL est écrit dans lpPathBuffer. Retourne ERROR_INSUFFICIENT_BUFFER si lpPathBuffer n’était pas assez grand pour contenir le chemin d’état, ou si lpPathBuffer était NULL. Dans ce cas, la longueur de mémoire tampon requise dans WCHAR est retournée via lpcchRequiredBufferLength. Si un autre échec se produit, un code d’erreur Win32 est retourné.

Remarques

Pour ServiceDirectoryPersistentState, la sécurité du répertoire est définie pour fournir uniquement l’accès en écriture au compte système local et au SID de service. Vérifiez que les SID de service sont activés pour tout service qui appelle cette API. Pour plus d’informations, consultez SERVICE_SID_INFO.

Pour obtenir une API similaire qui fournit l’état du service qui peut être partagé avec des programmes associés, consultez GetSharedServiceDirectory.

Tous les répertoires d’état du service sont supprimés par le gestionnaire de contrôle de service une fois le service désinstallé.

Configuration requise

   
Client minimal pris en charge Windows 10, version 2004 (10.0; Build 19041)
Serveur minimal pris en charge Windows Server, version 2004 (10.0 ; Build 19041)
En-tête winsvc.h
Bibliothèque Onecore.lib

Voir aussi

RegisterServiceCtrlHandler

GetSharedServiceDirectory

SERVICE_SID_INFO