Voltar à lista
Windows Win32Serviçosadvapi32.dll

CreateServiceW

Registra um novo serviço no banco de dados do Service Control Manager.

Descrição

Define como e quando o serviço é iniciado (SERVICE_AUTO_START, SERVICE_DEMAND_START), seu executável, e a conta sob a qual roda — análogo a instalar uma unit file do systemd no Linux.

Header: winsvc.hDLL: advapi32.dll

Assinatura

SC_HANDLE CreateServiceW(
    SC_HANDLE hSCManager,
    LPCWSTR lpServiceName,
    LPCWSTR lpDisplayName,
    DWORD dwDesiredAccess,
    DWORD dwServiceType,
    DWORD dwStartType,
    DWORD dwErrorControl,
    LPCWSTR lpBinaryPathName,
    LPCWSTR lpLoadOrderGroup,
    LPDWORD lpdwTagId,
    LPCWSTR lpDependencies,
    LPCWSTR lpServiceStartName,
    LPCWSTR lpPassword
);

Parâmetros

ParâmetroTipoDescrição
hSCManagerSC_HANDLEHandle do SCM, aberto com SC_MANAGER_CREATE_SERVICE.
lpServiceNameLPCWSTRNome interno do serviço.
lpDisplayNameLPCWSTRNome exibido ao usuário.
dwDesiredAccessDWORDDireitos de acesso desejados sobre o serviço criado.
dwServiceTypeDWORDSERVICE_WIN32_OWN_PROCESS, SERVICE_KERNEL_DRIVER, etc.
dwStartTypeDWORDSERVICE_AUTO_START, SERVICE_DEMAND_START, SERVICE_DISABLED.
dwErrorControlDWORDComo o sistema reage se o serviço falhar ao iniciar.
lpBinaryPathNameLPCWSTRCaminho do executável do serviço.
lpLoadOrderGroupLPCWSTRGrupo de ordem de carregamento, ou NULL.
lpdwTagIdLPDWORDRecebe uma tag de ordenação dentro do grupo, se solicitado.
lpDependenciesLPCWSTRLista de serviços dos quais este depende.
lpServiceStartNameLPCWSTRConta sob a qual o serviço roda, ou NULL para LocalSystem.
lpPasswordLPCWSTRSenha da conta, se aplicável.

Valor de retorno

Um handle para o novo serviço em sucesso; NULL em erro (consulte GetLastError).

Códigos de erro (GetLastError)

ERROR_ACCESS_DENIED(5)
Acesso negado.
ERROR_SERVICE_EXISTS(1073)
O serviço já existe no banco de dados do Service Control Manager.
ERROR_INVALID_PARAMETER(87)
Parâmetro incorreto.

Relacionadas