Lista de registros de servicio
A medida que se lee cada entrada de servicio de la base de datos de servicios instalados, el SCM crea un registro de servicio para el servicio. Un registro de servicio incluye:
- Nombre del servicio
- Tipo de inicio (inicio automático o inicio a petición)
- Estado del servicio (consulte la estructura SERVICE_STATUS )
- Tipo
Estado actual
Códigos de control aceptables
Código de salida
Sugerencia de espera - Puntero a la lista de dependencias
El nombre de usuario y la contraseña de una cuenta se especifican en el momento en que se instala el servicio. El SCM almacena el nombre de usuario en el registro y la contraseña en una parte segura de la autoridad de seguridad local (LSA). El administrador del sistema puede crear cuentas con contraseñas que nunca expiren. Como alternativa, el administrador del sistema puede crear cuentas con contraseñas que expiren y administren las cuentas cambiando las contraseñas periódicamente.
El SCM mantiene dos copias de la contraseña de una cuenta de usuario, una contraseña actual y una contraseña de copia de seguridad. La contraseña especificada la primera vez que se instala el servicio se almacena como la contraseña actual y la contraseña de copia de seguridad no se inicializa. Cuando el SCM intenta ejecutar el servicio en el contexto de seguridad de la cuenta de usuario, usa la contraseña actual. Si la contraseña actual se usa correctamente, también se guarda como contraseña de copia de seguridad. Si la contraseña se modifica con la función ChangeServiceConfig o la utilidad del panel de control Servicios, la nueva contraseña se almacena como la contraseña actual y la contraseña anterior se almacena como contraseña de copia de seguridad. Si el SCM intenta iniciar el servicio y se produce un error en la contraseña actual, usa la contraseña de copia de seguridad. Si la contraseña de copia de seguridad se usa correctamente, se guarda como contraseña actual.
El SCM actualiza el estado del servicio cuando un servicio lo envía notificaciones de estado mediante la función SetServiceStatus . El SCM mantiene el estado de un servicio de controladores consultando el sistema de E/S, en lugar de recibir notificaciones de estado, como lo hace desde un servicio.
Un servicio puede registrar información de tipo adicional mediante una llamada a la función SetServiceBits . Las funciones NetServerGetInfo y NetServerEnum obtienen los tipos de servicio admitidos.