Windows Win32Serviçosadvapi32.dll
EnumServicesStatusExW
Enumera os serviços registrados no SCM, com filtros por tipo e estado.
Descrição
Análogo a `systemctl list-units --type=service` no Linux.
Header:
winsvc.hDLL: advapi32.dllAssinatura
BOOL EnumServicesStatusExW(
SC_HANDLE hSCManager,
SC_ENUM_TYPE InfoLevel,
DWORD dwServiceType,
DWORD dwServiceState,
LPBYTE lpServices,
DWORD cbBufSize,
LPDWORD pcbBytesNeeded,
LPDWORD lpServicesReturned,
LPDWORD lpResumeHandle,
LPCWSTR pszGroupName
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| hSCManager | SC_HANDLE | Handle do SCM, aberto com SC_MANAGER_ENUMERATE_SERVICE. |
| InfoLevel | SC_ENUM_TYPE | Deve ser SC_ENUM_PROCESS_INFO. |
| dwServiceType | DWORD | Filtro de tipo de serviço. |
| dwServiceState | DWORD | Filtro de estado: SERVICE_ACTIVE, SERVICE_INACTIVE, SERVICE_STATE_ALL. |
| lpServices | LPBYTE | Recebe o array de serviços encontrados. |
| cbBufSize | DWORD | Tamanho de `lpServices`. |
| pcbBytesNeeded | LPDWORD | Recebe o tamanho necessário se o buffer for pequeno demais. |
| lpServicesReturned | LPDWORD | Recebe o número de serviços retornados. |
| lpResumeHandle | LPDWORD | Suporte a paginação de resultados entre chamadas. |
| pszGroupName | LPCWSTR | Filtro por grupo de carregamento, ou NULL. |
Valor de retorno
Diferente de zero em sucesso; 0 em erro (consulte GetLastError).
Códigos de erro (GetLastError)
- ERROR_MORE_DATA(234)
- Há mais dados disponíveis do que o buffer comporta.
- ERROR_ACCESS_DENIED(5)
- Acesso negado.