Función InitiateShutdownA (winreg.h)
Inicia un apagado y reinicio del equipo especificado y reinicia las aplicaciones que se han registrado para el reinicio.
Sintaxis
DWORD InitiateShutdownA(
[in, optional] LPSTR lpMachineName,
[in, optional] LPSTR lpMessage,
[in] DWORD dwGracePeriod,
[in] DWORD dwShutdownFlags,
[in] DWORD dwReason
);
Parámetros
[in, optional] lpMachineName
Nombre del equipo que se va a apagar. Si el valor de este parámetro es NULL, se apaga el equipo local.
[in, optional] lpMessage
Mensaje que se va a mostrar en el cuadro de diálogo de apagado interactivo.
[in] dwGracePeriod
Número de segundos que se deben esperar antes de apagar el equipo. Si el valor de este parámetro es cero, el equipo se apaga inmediatamente. Este valor se limita a MAX_SHUTDOWN_TIMEOUT.
Si el valor de este parámetro es mayor que cero y el dwShutdownFlags parámetro especifica la marca SHUTDOWN_GRACE_OVERRIDE, la función produce un error y devuelve el código de error ERROR_BAD_ARGUMENTS.
[in] dwShutdownFlags
Una o varias marcas de bits que especifican opciones para el apagado. Se definen los siguientes valores.
Valor | Significado |
---|---|
|
Todas las sesiones se cierran con fuerza. Si esta marca no está establecida y los usuarios que no sean el usuario actual inician sesión en el equipo especificado por el parámetro lpMachineName, esta función produce un error con un valor devuelto de ERROR_SHUTDOWN_USERS_LOGGED_ON. |
|
Especifica que la sesión de origen se cierra con fuerza. Si no se establece esta marca, la sesión de origen se apaga de forma interactiva, por lo que no se garantiza un apagado aunque la función se devuelva correctamente. |
|
Invalida el período de gracia para que el equipo se apague inmediatamente. |
|
A partir de InitiateShutdown que se ejecuta en Windows 8, debes incluir la marca SHUTDOWN_HYBRID con una o varias de las marcas de esta tabla para especificar opciones para el apagado.
A partir de Windows 8, InitiateShutdown iniciar siempre un apagado completo del sistema si la marca SHUTDOWN_HYBRID está ausente. |
|
El equipo instala las actualizaciones antes de iniciar el apagado. |
|
El equipo está apagado, pero no está apagado o reiniciado. |
|
El equipo está apagado y apagado. |
|
El equipo se apaga y reinicia. |
|
El sistema se reinicia con la función ExitWindowsEx con la marca EWX_RESTARTAPPS. Esto reinicia las aplicaciones que se han registrado para reiniciarse mediante la función |
[in] dwReason
Motivo para iniciar el apagado. Este parámetro debe ser uno de los códigos de motivo de apagado del sistema . Si este parámetro es cero, el valor predeterminado es un apagado indefinido que se registra como "No se encuentra ningún título por este motivo". De forma predeterminada, también es un apagado no planeado. Dependiendo de cómo se configura el sistema, un apagado no planeado desencadena la creación de un archivo que contiene la información de estado del sistema, que puede retrasar el apagado. Por lo tanto, no use cero para este parámetro.
Valor devuelto
Si la función se ejecuta correctamente, devuelve ERROR_SUCCESS.
Si se produce un error en la función, devuelve uno de los siguientes códigos de error.
Código devuelto | Descripción |
---|---|
|
El autor de la llamada no tiene el privilegio necesario (SE_SHUTDOWN_PRIVILEGE o SE_REMOTE_SHUTDOWN_PRIVILEGE) para realizar esta operación. |
|
El equipo especificado no existe o no es accesible. |
|
El nombre de equipo especificado no es un nombre de equipo válido. |
|
El equipo especificado no admite una interfaz de apagado. |
|
Se pasó un conjunto no válido de parámetros. Esto incluye las siguientes combinaciones.
|
|
Ya se ha iniciado un apagado en el equipo especificado. |
|
Se ha programado un apagado para el equipo especificado, pero no se ha iniciado. Para que esta función se realice correctamente, se debe establecer la marca SHUTDOWN_GRACE_OVERRIDE. |
|
Uno o varios usuarios que no sean el usuario actual han iniciado sesión en el equipo especificado y no se estableció la marca SHUTDOWN_FORCE_OTHERS. |
Observaciones
Para apagar el equipo local, el subproceso que llama debe tener el privilegio SE_SHUTDOWN_NAME. Para apagar un equipo remoto, el subproceso que llama debe tener el privilegio SE_REMOTE_SHUTDOWN_NAME en el equipo remoto. De forma predeterminada, los usuarios pueden habilitar el privilegio de SE_SHUTDOWN_NAME en el equipo en el que han iniciado sesión y los administradores pueden habilitar el privilegio de SE_REMOTE_SHUTDOWN_NAME en equipos remotos. Para obtener más información, vea En ejecución con privilegios especiales.
Entre los motivos comunes del error se incluyen un nombre de equipo no válido o inaccesible o privilegios insuficientes. El error ERROR_SHUTDOWN_IN_PROGRESS se devuelve si un apagado ya está en curso en el equipo especificado. El error ERROR_NOT_READY se puede devolver si el cambio rápido de usuario está habilitado, pero no se ha iniciado sesión ningún usuario.
Un valor devuelto distinto de cero no significa que el logoff fue o se realizará correctamente. El apagado es un proceso asincrónico y puede producirse mucho tiempo después de que se haya devuelto la llamada API, o no en absoluto. Incluso si el valor de tiempo de espera es cero, las aplicaciones, los servicios o incluso el sistema pueden anular el apagado. El valor devuelto distinto de cero indica que la validación de los derechos y parámetros se realizó correctamente y que el sistema aceptó la solicitud de apagado.
Nota
El encabezado winreg.h define InitiateShutdown como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP] |
servidor mínimo admitido | Windows Server 2008 [aplicaciones de escritorio | Aplicaciones para UWP] |
de la plataforma de destino de |
Windows |
encabezado de |
winreg.h (incluya Windows.h) |
biblioteca de |
Advapi32.lib |
DLL de |
Advapi32.dll |