Función ChangeServiceConfig2A (winsvc.h)

Cambia los parámetros de configuración opcionales de un servicio.

Sintaxis

BOOL ChangeServiceConfig2A(
  [in]           SC_HANDLE hService,
  [in]           DWORD     dwInfoLevel,
  [in, optional] LPVOID    lpInfo
);

Parámetros

[in] hService

Identificador del servicio. La función OpenService o CreateService devuelve este identificador y debe tener el derecho de acceso SERVICE_CHANGE_CONFIG . Para obtener más información, consulte Derechos de acceso y seguridad del servicio.

Si el controlador de servicio controla la acción SC_ACTION_RESTART , hService debe tener el derecho de acceso SERVICE_START .

[in] dwInfoLevel

Información de configuración que se va a cambiar. Este parámetro puede ser uno de los valores siguientes.

Valor Significado
SERVICE_CONFIG_DELAYED_AUTO_START_INFO
3
El parámetro lpInfo es un puntero a una estructura SERVICE_DELAYED_AUTO_START_INFO .

Windows Server 2003 y Windows XP: Este valor no se admite.

SERVICE_CONFIG_DESCRIPTION
1
El parámetro lpInfo es un puntero a una estructura SERVICE_DESCRIPTION .
SERVICE_CONFIG_FAILURE_ACTIONS
2
El parámetro lpInfo es un puntero a una estructura de SERVICE_FAILURE_ACTIONS .

Si el controlador de servicio controla la acción SC_ACTION_REBOOT, el autor de la llamada debe tener el privilegioSE_SHUTDOWN_NAME. Para más información, consulte Ejecución con privilegios especiales.

SERVICE_CONFIG_FAILURE_ACTIONS_FLAG
4
El parámetro lpInfo es un puntero a una estructura SERVICE_FAILURE_ACTIONS_FLAG .

Windows Server 2003 y Windows XP: Este valor no se admite.

SERVICE_CONFIG_PREFERRED_NODE
9
El parámetro lpInfo es un puntero a una estructura de SERVICE_PREFERRED_NODE_INFO .

Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este valor no se admite.

SERVICE_CONFIG_PRESHUTDOWN_INFO
7
El parámetro lpInfo es un puntero a una estructura SERVICE_PRESHUTDOWN_INFO .

Windows Server 2003 y Windows XP: Este valor no se admite.

SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO
6
El parámetro lpInfo es un puntero a una estructura de SERVICE_REQUIRED_PRIVILEGES_INFO .

Windows Server 2003 y Windows XP: Este valor no se admite.

SERVICE_CONFIG_SERVICE_SID_INFO
5
El parámetro lpInfo es un puntero a una estructura SERVICE_SID_INFO .
SERVICE_CONFIG_TRIGGER_INFO
8
El parámetro lpInfo es un puntero a una estructura SERVICE_TRIGGER_INFO . Este valor no es compatible con la versión ANSI de ChangeServiceConfig2.

Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este valor no se admite hasta Windows Server 2008 R2.

SERVICE_CONFIG_LAUNCH_PROTECTED
12
El parámetro lpInfo es un puntero de una estructura SERVICE_LAUNCH_PROTECTED_INFO .
Nota Este valor se admite a partir de Windows 8.1.
 

[in, optional] lpInfo

Puntero al nuevo valor que se va a establecer para la información de configuración. El formato de estos datos depende del valor del parámetro dwInfoLevel . Si este valor es NULL, la información permanece sin cambios.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

La función ChangeServiceConfig2 cambia la información de configuración opcional del servicio especificado en la base de datos del Administrador de control de servicios. Puede obtener la información de configuración opcional actual mediante la función QueryServiceConfig2 .

No se puede establecer el valor de SERVICE_CONFIG_FAILURE_ACTIONS para un servicio que comparte el proceso del administrador de control de servicios. Esto incluye todos los servicios cuya imagen ejecutable es "Services.exe".

Puede cambiar y consultar información de configuración adicional mediante las funciones ChangeServiceConfig y QueryServiceConfig , respectivamente.

Si un servicio está configurado para reiniciarse después de que finalice con un error, el administrador de control de servicios pone en cola la acción de reinicio para que se produzca después del retraso de tiempo especificado. No se puede cancelar una acción de reinicio en cola. Si el servicio se reinicia manualmente y, a continuación, se detiene antes de que se produzca la acción de reinicio en cola, el servicio se reiniciará inesperadamente cuando transcurre el retraso de tiempo. El servicio debe estar deshabilitado explícitamente para evitar que se reinicie.

El valor de SERVICE_CONFIG_LAUNCH_PROTECTED se puede usar para iniciar el servicio como protegido. Para iniciar el servicio como protegido, el servicio debe estar firmado con un certificado especial.

SERVICE_CONFIG_LAUNCH_PROTECTED ejemplo:

SERVICE_LAUNCH_PROTECTED_INFO Info;
SC_HANDLE hService;

Info.dwLaunchProtected = SERVICE_LAUNCH_PROTECTED_ANTIMALWARE_LIGHT;

hService = CreateService (...);

if (ChangeServiceConfig2(hService, 
                        SERVICE_CONFIG_LAUNCH_PROTECTED,
                        &Info) == FALSE)
{
    Result = GetLastError();
}

Ejemplos

Para obtener un ejemplo, consulte Cambio de la configuración de un servicio.

Nota

El encabezado winsvc.h define ChangeServiceConfig2 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 Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winsvc.h (incluye Windows.h)
Library Advapi32.lib
Archivo DLL Advapi32.dll

Consulte también

ChangeServiceConfig

CreateService

OpenService

QueryServiceConfig

QueryServiceConfig2

QueryServiceDynamicInformation

SERVICE_DELAYED_AUTO_START_INFO

SERVICE_DESCRIPTION

SERVICE_FAILURE_ACTIONS

SERVICE_FAILURE_ACTIONS_FLAG

SERVICE_PRESHUTDOWN_INFO

SERVICE_REQUIRED_PRIVILEGES_INFO

SERVICE_SID_INFO

Configuración de servicio

Funciones de servicio