Cambios de servicio para Windows Vista
Se han producido cambios significativos en el modelo de servicios para mejorar el rendimiento, la confiabilidad, la seguridad, la administración y la administración de servicios.
En la tabla siguiente se resumen las mejoras en los servicios de Windows Vista.
Mejora | Descripción |
---|---|
Inicio automático retrasado |
Los servicios de inicio automático retrasados se inician poco después de que se haya iniciado el sistema. Esto mejora el rendimiento de inicio del sistema, a la vez que proporciona inicio automático para estos servicios. Para establecer la marca de inicio automático retrasado, llame a la función ChangeServiceConfig2 con SERVICE_CONFIG_DELAYED_AUTO_START_INFO. |
Detección y recuperación de errores |
Si se produce un error en un servicio, el administrador de control de servicios (SCM) puede realizar una acción de error, como reiniciar el servicio en un intento de recuperarse de ese error. Para configurar una acción de error, llame a ChangeServiceConfig2 con SERVICE_CONFIG_FAILURE_ACTIONS. |
Notificaciones previas |
Un servicio puede registrarse para recibir una notificación de SERVICE_CONTROL_PRESHUTDOWN en su función HandlerEx antes de recibir la notificación de apagado real. Esto proporciona a los servicios un largo procedimiento de apagado más tiempo para apagarse correctamente. Para establecer el valor de tiempo de espera, llame a ChangeServiceConfig2 con SERVICE_CONFIG_PRESHUTDOWN_INFO. |
Acceso restringido a la red |
Puede usar SID de servicio para restringir el acceso a puertos, protocolos o dirección del tráfico de red. Para restringir el acceso de un servicio a la red, use la interfaz INetFwServiceRestriction . |
Ejecución con privilegios mínimos |
Los servicios se pueden ejecutar en cualquier cuenta que contenga los privilegios necesarios (LocalService, NetworkService, LocalSystem, una cuenta de dominio o una cuenta local) e indicar los privilegios necesarios llamando a ChangeServiceConfig2 con SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO. El SCM quita los privilegios que no son necesarios. |
Aislamiento de servicio |
Un servicio puede aislar objetos, como archivos o claves del Registro, para su uso exclusivo protegiéndolos con una entrada de control de acceso que contiene un SID de servicio. Una vez asignado este SID a un servicio, el propietario del servicio puede modificar las listas de control de acceso de los objetos para conceder acceso al SID. Esto permite a un servicio acceder a objetos específicos sin ejecutarse en una cuenta con privilegios elevados ni reducir la seguridad en los objetos. Para establecer el SID del servicio, llame a ChangeServiceConfig2 con SERVICE_CONFIG_SERVICE_SID_INFO. |
Notificaciones de cambio de estado del servicio |
Los servicios se pueden registrar para recibir notificaciones cuando se crea, elimina o tiene un cambio en el estado mediante la función NotifyServiceStatusChange . Esto es más eficaz que llamar a la función QueryServiceStatusEx en un bucle para sondear el estado. |
Aislamiento de sesión 0 |
Los servicios siempre se han ejecutado en la sesión 0. Antes de Windows Vista, el primer usuario en iniciar sesión también se asignó a la sesión 0. Ahora, la sesión 0 está reservada exclusivamente para servicios y otras aplicaciones que no están asociadas a una sesión de usuario interactiva. (El primer usuario en iniciar sesión está conectado a la sesión 1, el segundo usuario para iniciar sesión está conectado a la sesión 2, etc.). La sesión 0 no admite procesos que interactúan con el usuario. Este cambio significa que un servicio no puede publicar o enviar un mensaje a una aplicación y una aplicación no puede enviar o publicar un mensaje en un servicio. Además, los servicios no pueden mostrar directamente un elemento de interfaz de usuario, como un cuadro de diálogo. Un servicio puede usar la función WTSSendMessage para mostrar un cuadro de diálogo en otra sesión. |