Função EnumServicesStatusA (winsvc.h)
Enumera serviços no banco de dados do gerenciador de controle de serviço especificado. O nome e o status de cada serviço são fornecidos.
Essa função foi substituída pela função EnumServicesStatusEx. Ele retorna as mesmas informações EnumServicesStatus retorna, além do identificador de processo e informações adicionais para o serviço. Além disso, EnumServicesStatusEx permite enumerar serviços que pertencem a um grupo especificado.
Sintaxe
BOOL EnumServicesStatusA(
[in] SC_HANDLE hSCManager,
[in] DWORD dwServiceType,
[in] DWORD dwServiceState,
[out, optional] LPENUM_SERVICE_STATUSA lpServices,
[in] DWORD cbBufSize,
[out] LPDWORD pcbBytesNeeded,
[out] LPDWORD lpServicesReturned,
[in, out, optional] LPDWORD lpResumeHandle
);
Parâmetros
[in] hSCManager
Um identificador para o banco de dados do gerenciador de controle de serviço. Esse identificador é retornado pela função
[in] dwServiceType
O tipo de serviço a ser enumerado. Esse parâmetro pode ser um ou mais dos valores a seguir.
[in] dwServiceState
O estado dos serviços a serem enumerados. Esse parâmetro pode ser um dos valores a seguir.
[out, optional] lpServices
Um ponteiro para um buffer que contém uma matriz de estruturas de ENUM_SERVICE_STATUS que recebem o nome e as informações de status do serviço para cada serviço no banco de dados. O buffer deve ser grande o suficiente para manter as estruturas, além das cadeias de caracteres às quais seus membros apontam.
O tamanho máximo dessa matriz é de 256 K bytes. Para determinar o tamanho necessário, especifique NULL para esse parâmetro e 0 para o parâmetro cbBufSize. A função falhará e GetLastError retornará ERROR_INSUFFICIENT_BUFFER. O parâmetro pcbBytesNeededed receberá o tamanho necessário.
Windows Server 2003 e Windows XP: O tamanho máximo dessa matriz é de 64 K bytes. Esse limite foi aumentado a partir do Windows Server 2003 com SP1 e Windows XP com SP2.
[in] cbBufSize
O tamanho do buffer apontado pelo parâmetro lpServices, em bytes.
[out] pcbBytesNeeded
Um ponteiro para uma variável que recebe o número de bytes necessários para retornar as entradas de serviço restantes, se o buffer for muito pequeno.
[out] lpServicesReturned
Um ponteiro para uma variável que recebe o número de entradas de serviço retornadas.
[in, out, optional] lpResumeHandle
Um ponteiro para uma variável que, na entrada, especifica o ponto inicial da enumeração. Você deve definir esse valor como zero na primeira vez que essa função for chamada. Na saída, esse valor será zero se a função for bem-sucedida. No entanto, se a função retornar zero e a função GetLastError retornar ERROR_MORE_DATA, esse valor será usado para indicar a próxima entrada de serviço a ser lida quando a função for chamada para recuperar os dados adicionais.
Valor de retorno
Se a função for bem-sucedida, o valor retornado não será zero.
Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.
Os códigos de erro a seguir podem ser definidos pelo gerenciador de controle de serviço. Outros códigos de erro podem ser definidos pelas funções do Registro que são chamadas pelo gerenciador de controle de serviço.
Observações
Nota
O cabeçalho winsvc.h define EnumServicesStatus como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows XP [somente aplicativos da área de trabalho] |
servidor com suporte mínimo | Windows Server 2003 [somente aplicativos da área de trabalho] |
da Plataforma de Destino |
Windows |
cabeçalho | winsvc.h (incluir Windows.h) |
biblioteca | Advapi32.lib |
de DLL |
Advapi32.dll |
Consulte também
EnumDependentServices
de Instalação, Remoção e Enumeração do Serviço