Função RegisterServiceCtrlHandlerExA (winsvc.h)
Registra uma função para lidar com solicitações de controle de serviço estendidas.
Sintaxe
SERVICE_STATUS_HANDLE RegisterServiceCtrlHandlerExA(
[in] LPCSTR lpServiceName,
[in] LPHANDLER_FUNCTION_EX lpHandlerProc,
[in, optional] LPVOID lpContext
);
Parâmetros
[in] lpServiceName
O nome do serviço executado pelo thread de chamada. Esse é o nome do serviço especificado pelo programa de controle de serviço na função CreateService ao criar o serviço.
[in] lpHandlerProc
Um ponteiro para a função de manipulador a ser registrada. Para obter mais informações, consulte HandlerEx.
[in, optional] lpContext
Todos os dados definidos pelo usuário. Esse parâmetro, que é passado para a função de manipulador, pode ajudar a identificar o serviço quando vários serviços compartilham um processo.
Valor de retorno
Se a função for bem-sucedida, o valor retornado será um identificador de status de serviço.
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.
Código de retorno | Descrição |
---|---|
|
Não há memória suficiente disponível para converter um parâmetro de cadeia de caracteres ANSI em Unicode. Esse erro não ocorre para parâmetros de cadeia de caracteres Unicode. |
|
A entrada de serviço foi especificada incorretamente quando o processo chamou a função |
Observações
A função
A função
Quando a função do manipulador de controle é invocada com uma solicitação de controle, o serviço deve chamar SetServiceStatus para relatar o status para o gerenciador de controle de serviço somente se o status do serviço tiver sido alterado, como quando o serviço estiver processando controles de parada ou desligamento. Se o status do serviço não tiver sido alterado, o serviço não deverá relatar o status ao gerenciador de controle de serviço.
O identificador de status do serviço não precisa ser fechado.
Nota
O cabeçalho winsvc.h define RegisterServiceCtrlHandlerEx 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
de função do manipulador de controle de serviço