Função GetServiceDirectory (winsvc.h)

Retorna um caminho para um local de sistema de arquivos por serviço para um serviço para ler e/ou gravar o estado.

Sintaxe

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

Parâmetros

hServiceStatus

Um identificador para a estrutura de informações status para o serviço atual. Esse identificador é retornado pela função RegisterServiceCtrlHandler .

eDirectoryType

Um membro da enumeração SERVICE_DIRECTORY_TYPE que identifica o tipo de caminho de diretório por serviço a ser recuperado.

lpPathBuffer

Um buffer alocado pelo chamador no qual a cadeia de caracteres de caminho será copiada. Se NULL, a chamada de função falhará com ERROR_INSUFFICIENT_BUFFER e retornará o comprimento do buffer necessário, em WCHARs, em lpcchRequiredBufferLength. Se não for NULL, o comprimento do buffer deverá ser especificado em cchPathBufferLength. O caminho, se gravado, será encerrado em NULL.

cchPathBufferLength

O comprimento do buffer fornecido em lpPathBuffer, em unidades do WCHARS. Esse argumento será ignorado se lpPathBuffer for NULL.

lpcchRequiredBufferLength

Esse valor é definido como o comprimento necessário do buffer em unidades de WCHARs. Esse comprimento inclui o caractere NULL de terminação.

Valor retornado

Retorna ERROR_SUCCESS quando todas as operações são concluídas com êxito e o caminho de estado encerrado por NULL é gravado no lpPathBuffer. Retorna ERROR_INSUFFICIENT_BUFFER se lpPathBuffer não era grande o suficiente para conter o caminho de estado ou se lpPathBuffer era NULL. Nesse caso, o comprimento do buffer necessário em WCHARs é retornado por meio de lpcchRequiredBufferLength. Se ocorrer alguma outra falha, um código de erro Win32 será retornado.

Comentários

Para ServiceDirectoryPersistentState, a segurança do diretório é definida para fornecer apenas acesso de gravação à conta do sistema local e ao SID do serviço. Verifique se os SIDs de serviço estão habilitados para qualquer serviço que chame essa API. Para obter mais informações, consulte SERVICE_SID_INFO.

Para uma API semelhante que fornece o estado do serviço que pode ser compartilhado com programas associados, consulte GetSharedServiceDirectory.

Todos os diretórios de estado do serviço são excluídos pelo gerenciador de controle de serviço depois que o serviço é desinstalado.

Requisitos

   
Cliente mínimo com suporte Windows 10, versão 2004 (10.0; Build 19041)
Servidor mínimo com suporte Windows Server, versão 2004 (10.0; Build 19041)
Cabeçalho winsvc.h
Biblioteca Onecore.lib

Confira também

RegisterServiceCtrlHandler

GetSharedServiceDirectory

SERVICE_SID_INFO