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 |
---|---|
|
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. |
|
El parámetro lpInfo es un puntero a una estructura SERVICE_DESCRIPTION . |
|
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. |
|
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. |
|
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. |
|
El parámetro lpInfo es un puntero a una estructura SERVICE_PRESHUTDOWN_INFO .
Windows Server 2003 y Windows XP: Este valor no se admite. |
|
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. |
|
El parámetro lpInfo es un puntero a una estructura SERVICE_SID_INFO . |
|
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. |
|
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
QueryServiceDynamicInformation
SERVICE_DELAYED_AUTO_START_INFO