Como um serviço do Windows pode determinar seu ServiceName?

Eu olhei e não consegui encontrar o que deveria ser uma pergunta simples:

Como um Serviço do Windows pode determinar o Nome do Serviço para o qual foi iniciado?

Eu sei que a instalação pode hackear o registro e adicionar um argumento de linha de comando, mas logicamente parece quedevemos ser desnecessário, daí esta questão.

Eu estou esperando para executar várias cópias de um único binário de forma mais limpa do que o hack do registro.

Editar:

Isso está escrito em c #. Meus aplicativosA Principal() ponto de entrada faz coisas diferentes, dependendo dos argumentos da linha de comando:

Instalar ou desinstalar o serviço. A linha de comando pode fornecer um ServiceName não padrão e pode alterar o número de threads de trabalho.Executar como um executável de linha de comando (para depuração),Executar como um "serviço do Windows". Aqui, cria uma instância do meuServiceBase-derived class, então chamaSystem.ServiceProcess.ServiceBase.Run (instance);

Atualmente, a etapa de instalação anexa o nome do serviço e a contagem de encadeamentos aoImagePath no registro para que o aplicativo possa determinar seu nome de serviço.