Fonction RmRestart (restartmanager.h)
Redémarre les applications et les services qui ont été arrêtés par la fonction RmShutdown et qui ont été inscrits pour être redémarrés à l’aide de la fonction RegisterApplicationRestart . Cette fonction ne peut être appelée que par le programme d’installation principal qui a appelé la fonction RmStartSession pour démarrer la session Restart Manager.
Syntaxe
DWORD RmRestart(
[in] DWORD dwSessionHandle,
DWORD dwRestartFlags,
[in, optional] RM_WRITE_STATUS_CALLBACK fnStatus
);
Paramètres
[in] dwSessionHandle
Handle de la session du Gestionnaire de redémarrage existant.
dwRestartFlags
Réservé. Ce paramètre doit être 0.
[in, optional] fnStatus
Pointeur vers une fonction de rappel de message status utilisée pour communiquer status pendant l’exécution de la fonction RmRestart. Si la valeur est NULL, aucune status n’est fournie.
Valeur retournée
Il s’agit de l’erreur la plus récente reçue. La fonction peut retourner l’un des codes d’erreur système définis dans Winerror.h.
Valeur | Signification |
---|---|
|
Cette valeur d’erreur est retournée si la fonction RmRestart est appelée avec un handle de session valide avant d’appeler la fonction RmShutdown . |
|
Impossible de redémarrer une ou plusieurs applications. Les structures RM_PROCESS_INFO retournées par la fonction RmGetList contiennent des informations status mises à jour. |
|
Une fonction Restart Manager n’a pas pu obtenir un mutex d’écriture de Registre dans le délai imparti. Un redémarrage du système est recommandé, car l’utilisation ultérieure du Gestionnaire de redémarrage risque d’échouer. |
|
Cette valeur d’erreur est retournée par la fonction RmRestart lorsque la demande d’annulation d’une opération réussit. |
|
Un ou plusieurs arguments sont incorrects. Cette valeur d’erreur est retournée par la fonction Restart Manager si un pointeur NULL ou 0 est passé dans un paramètre qui nécessite une valeur non null et une valeur non nulle. |
|
Une opération n’a pas pu lire ou écrire dans le Registre. |
|
Une opération de redémarrage du Gestionnaire n’a pas pu se terminer, car la mémoire disponible était insuffisante. |
|
Il n’existe aucune session restart Manager pour le handle fourni. |
|
La fonction réussit et retourne. |
Remarques
Après avoir appelé la fonction RmRestart, les structures RM_PROCESS_INFO retournées par la fonction RmGetList contiennent des informations status mises à jour.
Le Gestionnaire de redémarrage respecte les privilèges qui séparent différentes sessions utilisateur ou terminal. Un programme d’installation qui s’exécute en tant que service avec des privilèges LocalSystem ne peut pas arrêter ou redémarrer des applications dans une autre session utilisateur ou terminal. Les programmes d’installation doivent implémenter des méthodes personnalisées pour arrêter et redémarrer les applications qui s’exécutent dans d’autres sessions. Une méthode consiste à démarrer un nouveau processus d’installation dans l’autre session pour effectuer des opérations d’arrêt et de redémarrage.
Lorsqu’une application console est arrêtée et redémarrée par le Gestionnaire de redémarrage, l’application est redémarrée dans une nouvelle console.
Les programmes d’installation doivent toujours redémarrer l’application et les services à l’aide de la fonction RmRestart , même lorsque la fonction RmShutdown retourne une erreur indiquant que toutes les applications et services ne peuvent pas être arrêtés.
La fonction RmRestart ne redémarre pas les applications qui s’exécutent avec des privilèges élevés. Même si l’application a été arrêtée par le Gestionnaire de redémarrage.
La fonction RmRestart ne redémarre pas les applications qui ne s’exécutent pas en tant qu’utilisateur actuellement connecté. Même si l’application a été arrêtée par le Gestionnaire de redémarrage. Par exemple, la fonction RmRestart ne redémarre pas les applications démarrées avec la commande d’identification qui ne s’exécutent pas en tant qu’utilisateur actuellement connecté. Ces applications doivent être redémarrées manuellement.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | restartmanager.h |
Bibliothèque | Rstrtmgr.lib |
DLL | Rstrtmgr.dll |