Compartir a través de


estructura SERVICE_CONTROL_STATUS_REASON_PARAMSW (winsvc.h)

Contiene parámetros de control de servicio.

Sintaxis

typedef struct _SERVICE_CONTROL_STATUS_REASON_PARAMSW {
  DWORD                  dwReason;
  LPWSTR                 pszComment;
  SERVICE_STATUS_PROCESS ServiceStatus;
} SERVICE_CONTROL_STATUS_REASON_PARAMSW, *PSERVICE_CONTROL_STATUS_REASON_PARAMSW;

Miembros

dwReason

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.

Valor Significado
SERVICE_STOP_REASON_MINOR_DISK
0x00000008
Disco.
SERVICE_STOP_REASON_MINOR_ENVIRONMENT
0x0000000a
Medio ambiente.
SERVICE_STOP_REASON_MINOR_HARDWARE_DRIVER
0x0000000b
Conductor.
SERVICE_STOP_REASON_MINOR_HUNG
0x00000006
Insensible.
SERVICE_STOP_REASON_MINOR_INSTALLATION
0x00000003
Instalación.
SERVICE_STOP_REASON_MINOR_MAINTENANCE
0x00000002
Mantenimiento.
SERVICE_STOP_REASON_MINOR_MMC
0x00000016
Problema de MMC.
SERVICE_STOP_REASON_MINOR_NETWORK_CONNECTIVITY
0x00000011
Conectividad de red.
SERVICE_STOP_REASON_MINOR_NETWORKCARD
0x00000009
Tarjeta de red.
SERVICE_STOP_REASON_MINOR_NONE
0x00060000
Ninguna razón menor.
SERVICE_STOP_REASON_MINOR_OTHER
0x00000001
Otro problema.
SERVICE_STOP_REASON_MINOR_OTHERDRIVER
0x0000000c
Otro evento de controlador.
SERVICE_STOP_REASON_MINOR_RECONFIG
0x00000005
Reconfigurar.
SERVICE_STOP_REASON_MINOR_SECURITY
0x00000010
Problema de seguridad.
SERVICE_STOP_REASON_MINOR_SECURITYFIX
0x0000000f
Actualización de seguridad.
SERVICE_STOP_REASON_MINOR_SECURITYFIX_UNINSTALL
0x00000015
Desinstalación de actualizaciones de seguridad.
SERVICE_STOP_REASON_MINOR_SERVICEPACK
0x0000000d
Service Pack.
SERVICE_STOP_REASON_MINOR_SERVICEPACK_UNINSTALL
0x00000013
Desinstalación de Service Pack.
SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE
0x0000000e
Actualización de software.
SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE_UNINSTALL
0x0000000e
Desinstalación de actualizaciones de software.
SERVICE_STOP_REASON_MINOR_UNSTABLE
0x00000007
Inestable.
SERVICE_STOP_REASON_MINOR_UPGRADE
0x00000004
Actualizar.
SERVICE_STOP_REASON_MINOR_WMI
0x00000012
Problema de WMI.

pszComment

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]
encabezado de winsvc.h (incluya Windows.h)

Consulte también

ControlServiceEx

SERVICE_STATUS_PROCESS