Programas de servicio
Un programa de servicio contiene código ejecutable para uno o varios servicios. Un programa de servicio creado con el tipo SERVICE_WIN32_OWN_PROCESS contiene el código solo para un servicio. Un programa de servicio creado con el tipo SERVICE_WIN32_SHARE_PROCESS contiene código para más de un servicio, lo que les permite compartir código. Un ejemplo de un programa de servicio que hace esto es el proceso de host de servicio genérico, Svchost.exe, que hospeda los servicios internos de Windows. Tenga en cuenta que Svchost.exe está reservado para su uso por parte del sistema operativo y no debe usarse en los servicios que no son de Windows. En su lugar, los desarrolladores deben implementar sus propios programas de hospedaje de servicios.
Un programa de servicio se puede configurar para que se ejecute en el contexto de una cuenta de usuario desde el dominio integrado (local), principal o de confianza. También se puede configurar para que se ejecute en una cuenta de usuario de servicio especial.
En los temas siguientes se describen los requisitos de interfaz del administrador de control de servicios (SCM) que un programa de servicio debe incluir:
- Punto de entrada de servicio
- Service ServiceMain (Función)
- Función de controlador de control de servicio
Estos temas no se aplican a los servicios de controladores. Para conocer los requisitos de interfaz de los servicios de controladores, consulta el Kit de controladores de Windows (WDK).
Un servicio se ejecuta como un proceso en segundo plano que puede afectar al rendimiento del sistema, la capacidad de respuesta, la eficiencia energética y la seguridad. Para obtener instrucciones de optimización de servicios, consulte Desarrollo de procesos en segundo plano eficaces para Windows. En los temas siguientes se describen consideraciones de programación adicionales:
- Transiciones de estado de servicio
- Recepción de eventos en un servicio
- Servicios multiproceso
- Servicios y el Registro
- Servicios y unidades redirigidas
- Eventos de desencadenador de servicio
Tenga en cuenta que si el programa de servicio funciona como servidor RPC, debe usar puntos de conexión dinámicos y autenticación mutua.