InitiateShutdownA, fonction (winreg.h)
Lance un arrêt et un redémarrage de l’ordinateur spécifié et redémarre toutes les applications inscrites pour le redémarrage.
Syntaxe
DWORD InitiateShutdownA(
[in, optional] LPSTR lpMachineName,
[in, optional] LPSTR lpMessage,
[in] DWORD dwGracePeriod,
[in] DWORD dwShutdownFlags,
[in] DWORD dwReason
);
Paramètres
[in, optional] lpMachineName
Nom de l’ordinateur à arrêter. Si la valeur de ce paramètre est NULL, l’ordinateur local est arrêté.
[in, optional] lpMessage
Message à afficher dans la boîte de dialogue d’arrêt interactif.
[in] dwGracePeriod
Nombre de secondes à attendre avant d’arrêter l’ordinateur. Si la valeur de ce paramètre est égale à zéro, l’ordinateur est arrêté immédiatement. Cette valeur est limitée à MAX_SHUTDOWN_TIMEOUT.
Si la valeur de ce paramètre est supérieure à zéro et que le paramètre dwShutdownFlags spécifie l’indicateur SHUTDOWN_GRACE_OVERRIDE, la fonction échoue et retourne le code d’erreur ERROR_BAD_ARGUMENTS.
[in] dwShutdownFlags
Un ou plusieurs indicateurs de bits qui spécifient des options pour l’arrêt. Les valeurs suivantes sont définies.
Valeur | Signification |
---|---|
|
Toutes les sessions sont déconnectées avec force. Si cet indicateur n’est pas défini et que les utilisateurs autres que l’utilisateur actuel sont connectés à l’ordinateur spécifié par le paramètre lpMachineName, cette fonction échoue avec une valeur de retour de ERROR_SHUTDOWN_USERS_LOGGED_ON. |
|
Spécifie que la session d’origine est déconnectée avec force. Si cet indicateur n’est pas défini, la session d’origine est arrêtée de manière interactive. Par conséquent, un arrêt n’est pas garanti même si la fonction retourne correctement. |
|
Remplace la période de grâce afin que l’ordinateur soit arrêté immédiatement. |
|
À compter de InitiateShutdown en cours d’exécution sur Windows 8, vous devez inclure l’indicateur SHUTDOWN_HYBRID avec un ou plusieurs des indicateurs de ce tableau pour spécifier les options de l’arrêt.
À compter de Windows 8, InitiateShutdown toujours lancer un arrêt complet du système si l’indicateur SHUTDOWN_HYBRID est absent. |
|
L’ordinateur installe les mises à jour avant de démarrer l’arrêt. |
|
L’ordinateur est arrêté, mais n’est pas sous tension ni redémarré. |
|
L’ordinateur est arrêté et mis hors tension. |
|
L’ordinateur est arrêté et redémarré. |
|
Le système est redémarré à l’aide de la fonction ExitWindowsEx avec l’indicateur de EWX_RESTARTAPPS. Cela redémarre toutes les applications inscrites pour le redémarrage à l’aide de la fonction RegisterApplicationRestart. |
[in] dwReason
Motif de l’arrêt. Ce paramètre doit être l’un des codes de raison d’arrêt du système . Si ce paramètre est égal à zéro, la valeur par défaut est un arrêt non défini enregistré sous la forme « Aucun titre pour cette raison est introuvable ». Par défaut, il s’agit également d’un arrêt non planifié. Selon la configuration du système, un arrêt non planifié déclenche la création d’un fichier qui contient les informations d’état du système, ce qui peut retarder l’arrêt. Par conséquent, n’utilisez pas zéro pour ce paramètre.
Valeur de retour
Si la fonction réussit, elle retourne ERROR_SUCCESS.
Si la fonction échoue, elle retourne l’un des codes d’erreur suivants.
Retourner le code | Description |
---|---|
|
L’appelant n’a pas le privilège requis (SE_SHUTDOWN_PRIVILEGE ou SE_REMOTE_SHUTDOWN_PRIVILEGE) pour effectuer cette opération. |
|
L’ordinateur spécifié n’existe pas ou n’est pas accessible. |
|
Le nom d’ordinateur spécifié n’est pas un nom d’ordinateur valide. |
|
L’ordinateur spécifié ne prend pas en charge une interface d’arrêt. |
|
Un ensemble de paramètres non valide a été passé. Cela inclut les combinaisons suivantes.
|
|
Un arrêt a déjà été démarré sur l’ordinateur spécifié. |
|
Un arrêt pour l’ordinateur spécifié a été planifié, mais pas démarré. Pour que cette fonction réussisse, l’indicateur SHUTDOWN_GRACE_OVERRIDE doit être défini. |
|
Un ou plusieurs utilisateurs autres que l’utilisateur actuel sont connectés sur l’ordinateur spécifié et l’indicateur de SHUTDOWN_FORCE_OTHERS n’a pas été défini. |
Remarques
Pour arrêter l’ordinateur local, le thread appelant doit disposer du privilège SE_SHUTDOWN_NAME. Pour arrêter un ordinateur distant, le thread appelant doit disposer du privilège SE_REMOTE_SHUTDOWN_NAME sur l’ordinateur distant. Par défaut, les utilisateurs peuvent activer le privilège SE_SHUTDOWN_NAME sur l’ordinateur sur lequel ils sont connectés, et les administrateurs peuvent activer le privilège SE_REMOTE_SHUTDOWN_NAME sur les ordinateurs distants. Pour plus d’informations, consultez Exécution avec des privilèges spéciaux.
Les raisons courantes de l’échec incluent un nom d’ordinateur non valide ou inaccessible ou un privilège insuffisant. L’erreur ERROR_SHUTDOWN_IN_PROGRESS est retournée si un arrêt est déjà en cours sur l’ordinateur spécifié. L’erreur ERROR_NOT_READY peut être retournée si le basculement rapide de l’utilisateur est activé, mais qu’aucun utilisateur n’est connecté.
Une valeur de retour non nulle ne signifie pas que la déconnexion a été ou sera réussie. L’arrêt est un processus asynchrone et peut se produire longtemps après que l’appel d’API a retourné, ou pas du tout. Même si la valeur de délai d’expiration est égale à zéro, l’arrêt peut toujours être abandonné par les applications, les services ou même le système. La valeur de retour non zéro indique que la validation des droits et des paramètres a réussi et que le système a accepté la demande d’arrêt.
Note
L’en-tête winreg.h définit InitiateShutdown comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows Vista [applications de bureau | Applications UWP] |
serveur minimum pris en charge | Windows Server 2008 [applications de bureau | Applications UWP] |
plateforme cible | Windows |
d’en-tête | winreg.h (inclure Windows.h) |
bibliothèque | Advapi32.lib |
DLL | Advapi32.dll |