Uso del Administrador de reinicio con un instalador principal
En el procedimiento siguiente se describe cómo usar el Administrador de reinicio para apagar y reiniciar aplicaciones y servicios. Cuando se usa el Administrador de reinicios con un único instalador, este instalador también es el instalador principal que controla la interfaz de usuario.
Para usar el Administrador de reinicio con un instalador principal
El instalador llama a la función RmStartSession para iniciar la sesión del Administrador de reinicio y obtener un identificador y una clave de sesión.
El instalador llama a la función RmRegisterResources para registrar recursos. El Administrador de reinicio solo puede usar recursos registrados para determinar qué aplicaciones y servicios deben apagarse y reiniciarse. Todos los recursos que pueden verse afectados por la instalación deben registrarse en la sesión. Los recursos se pueden identificar por nombre de archivo, nombre corto de servicio o una estructura de RM_UNIQUE_PROCESS .
El instalador llama a la función RmGetList para obtener una matriz de estructuras de RM_PROCESS_INFO que enumera todas las aplicaciones y servicios que deben apagarse y reiniciarse.
Si el valor del parámetro lpdwRebootReason devuelto por la función RmGetList no es cero, restart Manager no puede liberar un recurso registrado por el apagado de una aplicación o servicio. En este caso, se requiere un apagado y reinicio del sistema para continuar con la instalación. El instalador debe solicitar al usuario una acción, detener programas o servicios, o programar un apagado y reinicio del sistema.
Si el valor del parámetro lpdwRebootReason devuelto por la función RmGetList es cero, el instalador debe llamar a la función RmShutdown . Esto cierra los servicios y aplicaciones que usan recursos registrados. A continuación, el instalador debe realizar modificaciones del sistema necesarias para completar la instalación. Por último, el instalador debe llamar a la función RmRestart para que el Administrador de reinicio pueda reiniciar las aplicaciones que ha apagado y que se hayan registrado para un reinicio.
El instalador puede usar la función RmAddFilter para evitar que las operaciones del Administrador de reinicio cierren o reinicien los servicios y aplicaciones especificados. La función RmGetFilterList devuelve una lista de las aplicaciones y servicios que se van a filtrar del apagado y reinicio. La función RmRemoveFilter quita un filtro.
El instalador llama a la función RmEndSession para cerrar la sesión del Administrador de reinicio.
Para obtener un fragmento de código de ejemplo que muestra cómo iniciar y usar una sesión del Administrador de reinicio mediante un instalador principal y, a continuación, unir un instalador secundario a la sesión existente, consulte Uso del Administrador de reinicio con un instalador secundario.