Función RmRestart (restartmanager.h)

Reinicia las aplicaciones y los servicios que la función RmShutdown ha cerrado y que se han registrado para reiniciarse mediante la función RegisterApplicationRestart . El instalador principal solo puede llamar a esta función que llamó a la función RmStartSession para iniciar la sesión del Administrador de reinicio.

Sintaxis

DWORD RmRestart(
  [in]           DWORD                    dwSessionHandle,
                 DWORD                    dwRestartFlags,
  [in, optional] RM_WRITE_STATUS_CALLBACK fnStatus
);

Parámetros

[in] dwSessionHandle

Identificador de la sesión existente del Administrador de reinicio.

dwRestartFlags

Reservado. Este parámetro debe ser 0.

[in, optional] fnStatus

Puntero a una función de devolución de llamada de mensaje de estado que se usa para comunicar el estado mientras se ejecuta la función RmRestart . 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
ERROR_REQUEST_OUT_OF_SEQUENCE
776
Este valor de error se devuelve si se llama a la función RmRestart con un identificador de sesión válido antes de llamar a la función RmShutdown .
ERROR_FAIL_RESTART
352
No se pudieron reiniciar una o varias aplicaciones. Las estructuras de RM_PROCESS_INFO devueltas por la función RmGetList contienen información de estado actualizada.
ERROR_SEM_TIMEOUT
121
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.
ERROR_CANCELLED
1223
La función RmRestart devuelve este valor de error cuando la solicitud para cancelar una operación se realiza correctamente.
ERROR_BAD_ARGUMENTS
160
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.
ERROR_WRITE_FAULT
29
Una operación no pudo leer o escribir en el Registro.
ERROR_OUTOFMEMORY
14
No se pudo completar una operación del Administrador de reinicio porque no había suficiente memoria disponible.
ERROR_INVALID_HANDLE
6
No existe ninguna sesión del Administrador de reinicio para el identificador proporcionado.
ERROR_SUCCESS
0
La función se realiza correctamente y devuelve.

Comentarios

Después de llamar a la función RmRestart , las estructuras de RM_PROCESS_INFO devueltas por la función RmGetList contienen información de estado actualizada.

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.

Cuando el Administrador de reinicio cierra y reinicia una aplicación de consola, la aplicación se reinicia en una nueva consola.

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.

La función RmRestart no reinicia ninguna aplicación que se ejecute con privilegios elevados. Incluso si el Administrador de reinicio ha apagado la aplicación.

La función RmRestart no reinicia ninguna aplicación que no se ejecute como el usuario que ha iniciado sesión actualmente. Incluso si el Administrador de reinicio ha apagado la aplicación. Por ejemplo, la función RmRestart no reinicia las aplicaciones iniciadas con el comando Ejecutar como que no se ejecuta como el usuario que ha iniciado sesión actualmente. Estas aplicaciones deben reiniciarse manualmente.

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

Consulte también

RegisterApplicationRestart

RmCancelCurrentTask

RmShutdown