Función RmShutdown (restartmanager.h)
Inicia el apagado de las aplicaciones. Solo se puede llamar a esta función desde el instalador que inició la sesión del Administrador de reinicio mediante la función RmStartSession .
Sintaxis
DWORD RmShutdown(
[in] DWORD dwSessionHandle,
[in] ULONG lActionFlags,
[in, optional] RM_WRITE_STATUS_CALLBACK fnStatus
);
Parámetros
[in] dwSessionHandle
Identificador de una sesión existente del Administrador de reinicio.
[in] lActionFlags
Una o varias opciones de RM_SHUTDOWN_TYPE que configuran el apagado de los componentes. Un operador OR puede combinar los siguientes valores para especificar que las aplicaciones y los servicios que no responden deben verse obligados a apagarse si, y solo si todas las aplicaciones se han registrado para reiniciarse.
Valor | Significado |
---|---|
|
Forzar que las aplicaciones y los servicios no respondan se apaguen después del período de tiempo de espera. Una aplicación que no responde a una solicitud de apagado se ve obligada a apagarse en un plazo de 30 segundos. Un servicio que no responde a una solicitud de apagado se ve obligado a apagarse después de 20 segundos. |
|
Apague las aplicaciones si y solo si todas las aplicaciones se han registrado para reiniciarse mediante la función RegisterApplicationRestart . Si no se pueden reiniciar procesos o servicios, no se cierra ningún proceso o servicio. |
[in, optional] fnStatus
Puntero a una función RM_WRITE_STATUS_CALLBACK que se usa para comunicar el estado detallado mientras se ejecuta esta función. Si es NULL, no se proporciona ningún estado.
Valor devuelto
Este es el error más reciente recibido. La función puede devolver uno de los códigos de error del sistema definidos en Winerror.h.
Valor | Significado |
---|---|
|
Todas las operaciones de apagado, reinicio y devolución de llamada se completaron correctamente. |
|
No se realizaron acciones de apagado. Uno o varios procesos o servicios requieren un reinicio del sistema para apagarse. Este código de error se devuelve cuando el Administrador de reinicio detecta que se requiere un reinicio del sistema antes de apagar cualquier aplicación. |
|
Algunas aplicaciones no se pudieron apagar. Las appStatus de las estructuras de RM_PROCESS_INFO devueltas por la función RmGetList contienen información de estado actualizada. |
|
La función RmShutdown devuelve este valor de error cuando la solicitud para cancelar una operación se realiza correctamente. |
|
Una función Restart Manager no pudo obtener una exclusión mutua de escritura del Registro en el tiempo asignado. Se recomienda reiniciar el sistema porque es probable que se produzca un error en el uso posterior del Administrador de reinicios. |
|
Uno o más argumentos son incorrectos. La función Restart Manager devuelve este valor de error si se pasa un puntero NULL o 0 en un parámetro que requiere un valor distinto de NULL y distinto de cero. |
|
Una operación no pudo leer o escribir en el Registro. |
|
No se pudo completar una operación del Administrador de reinicio porque no hay suficiente memoria disponible. |
|
No existe ninguna sesión del Administrador de reinicio para el identificador proporcionado. |
Comentarios
La función RmShutdown llama a RmGetList y actualiza la lista de procesos que actualmente usan recursos registrados antes de intentar apagar los procesos. A continuación, la función RmShutdown intenta apagar los procesos mediante recursos registrados en la lista más reciente. La función RmShutdown actualiza el miembro AppStatus de las estructuras de RM_PROCESS_INFO que devuelve la función RmGetList con información detallada de estado.
El Administrador de reinicio respeta los privilegios que separan diferentes sesiones de usuario o terminal. Un instalador que se ejecuta como servicio con privilegios LocalSystem no puede apagar ni reiniciar ninguna aplicación en otra sesión de usuario o terminal. Los instaladores deben implementar métodos personalizados para apagar y reiniciar aplicaciones que se ejecutan en otras sesiones. Un método sería iniciar un nuevo proceso de instalador en la otra sesión para realizar operaciones de apagado y reinicio.
Los instaladores siempre deben reiniciar la aplicación y los servicios mediante la función RmRestart incluso cuando la función RmShutdown devuelve un error que indica que no todas las aplicaciones y servicios podrían apagarse.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | restartmanager.h |
Library | Rstrtmgr.lib |
Archivo DLL | Rstrtmgr.dll |