Motivo para cambiar el estado del servicio a SERVICE_CONTROL_STOP. Si el código de control actual no es SERVICE_CONTROL_STOP, se omite este miembro.
Este miembro debe establecerse en una combinación de un código general, un código de motivo principal y un código de motivo menor.
A continuación se muestran los códigos de motivo generales.
Valor
Significado
SERVICE_STOP_REASON_FLAG_CUSTOM
0x20000000
El usuario define el código de motivo. Si esta marca no está presente, el sistema define el código de motivo. Si se especifica esta marca con un código de motivo del sistema, se produce un error en la llamada a la función.
Los usuarios pueden crear códigos de motivo principales personalizados en el intervalo SERVICE_STOP_REASON_MAJOR_MIN_CUSTOM (0x00400000) a través de SERVICE_STOP_REASON_MAJOR_MAX_CUSTOM (0x00ff0000) y códigos de motivo menores en el intervalo SERVICE_STOP_REASON_MINOR_MIN_CUSTOM (0x00000100) a través de SERVICE_STOP_REASON_MINOR_MAX_CUSTOM (0x0000FFFF).
SERVICE_STOP_REASON_FLAG_PLANNED
0x40000000
Se planeó la detención del servicio.
SERVICE_STOP_REASON_FLAG_UNPLANNED
0x10000000
La detención del servicio no estaba planeada.
A continuación se muestran los códigos de motivo principales.
Valor
Significado
SERVICE_STOP_REASON_MAJOR_APPLICATION
0x00050000
Problema de la aplicación.
SERVICE_STOP_REASON_MAJOR_HARDWARE
0x00020000
Problema de hardware.
SERVICE_STOP_REASON_MAJOR_NONE
0x00060000
No hay ninguna razón importante.
SERVICE_STOP_REASON_MAJOR_OPERATINGSYSTEM
0x00030000
Problema del sistema operativo.
SERVICE_STOP_REASON_MAJOR_OTHER
0x00010000
Otro problema.
SERVICE_STOP_REASON_MAJOR_SOFTWARE
0x00040000
Problema de software.
A continuación se muestran los códigos de motivo menores.
Cadena opcional que proporciona información adicional sobre la detención del servicio. Esta cadena se almacena en el registro de eventos junto con el código de motivo de detención. Este miembro debe ser NULL o una cadena válida que tenga menos de 128 caracteres, incluido el carácter NULO de terminación.
ServiceStatus
Puntero a una estructura de SERVICE_STATUS_PROCESS que recibe la información de estado del servicio más reciente. La información devuelta refleja el estado más reciente que el servicio notificó al administrador de control de servicios.
El administrador de control de servicio rellena la estructura solo cuando ControlServiceEx devuelve uno de los siguientes códigos de error: NO_ERROR, ERROR_INVALID_SERVICE_CONTROL, ERROR_SERVICE_CANNOT_ACCEPT_CTRL o ERROR_SERVICE_NOT_ACTIVE. De lo contrario, la estructura no se rellena.
Observaciones
Nota
El encabezado winsvc.h define SERVICE_CONTROL_STATUS_REASON_PARAMS 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 [solo aplicaciones de escritorio]
servidor mínimo admitido
Windows Server 2008 [solo aplicaciones de escritorio]