CServiceModule::Start

A rotina de WinMain lida com registro e instalação, bem como o cancelamento do registo e desinstalação. Quando o serviço é executado, WinMain chama CServiceModule::Start.

CServiceModule::Start define uma matriz de SERVICE_TABLE_ENTRY estruturas que mapeiam cada serviço para sua função de inicialização. Essa matriz é então passada para a função de API do Win32, StartServiceCtrlDispatcher. Em teoria, um EXE poderia lidar com vários serviços e a matriz pode ter várias estruturas de SERVICE_TABLE_ENTRY . Atualmente, no entanto, um serviço de ATL-gerado suporta apenas um serviço por EXE. Portanto, a matriz tem uma única entrada que contém o nome do serviço e _ServiceName como a função de inicialização. _ServiceName é uma função de membro estático de CServiceModule que chama a função de membro não-estático, ServiceName.

&Notanbsp;  Falha de StartServiceCtrlDispatcher para conectar para o Gerenciador de controle de serviço (SCM) provavelmente significa que o programa não está sendo executado como um serviço. Neste caso, o programa chama CServiceModule::Run diretamente para que o programa pode ser executado como um servidor local. Para obter mais informações sobre como executar o programa como um servidor local, consulte Depurando dicas.

Index