Función QueryServiceConfigA (winsvc.h)
Recupera los parámetros de configuración del servicio especificado. Los parámetros de configuración opcionales están disponibles mediante la función QueryServiceConfig2 .
Sintaxis
BOOL QueryServiceConfigA(
[in] SC_HANDLE hService,
[out, optional] LPQUERY_SERVICE_CONFIGA lpServiceConfig,
[in] DWORD cbBufSize,
[out] LPDWORD pcbBytesNeeded
);
Parámetros
[in] hService
Identificador del servicio. La función OpenService o CreateService devuelve este identificador y debe tener el derecho de acceso SERVICE_QUERY_CONFIG. Para obtener más información, consulte Derechos de acceso y seguridad de servicio.
[out, optional] lpServiceConfig
Puntero a un búfer que recibe la información de configuración del servicio. El formato de los datos es una estructura QUERY_SERVICE_CONFIG .
El tamaño máximo de esta matriz es de 8 000 bytes. Para determinar el tamaño necesario, especifique NULL para este parámetro y 0 para el parámetro cbBufSize . Se producirá un error en la función y GetLastError devolverá ERROR_INSUFFICIENT_BUFFER. El parámetro pcbBytesNeeded recibirá el tamaño necesario.
[in] cbBufSize
Tamaño del búfer al que apunta el parámetro lpServiceConfig , en bytes.
[out] pcbBytesNeeded
Puntero a una variable que recibe el número de bytes necesarios para almacenar toda la información de configuración, si se produce un error en la función con ERROR_INSUFFICIENT_BUFFER.
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.
El administrador de controles de servicio puede establecer los siguientes códigos de error. Otras pueden establecerse mediante las funciones del Registro a las que llama el administrador de control de servicios.
Código devuelto | Descripción |
---|---|
|
El identificador no tiene derecho de acceso SERVICE_QUERY_CONFIG. |
|
Hay más información de configuración del servicio que cabría en el búfer lpServiceConfig . El número de bytes necesarios para obtener toda la información se devuelve en el parámetro pcbBytesNeeded . No se escribe nada en lpServiceConfig. |
|
El identificador especificado no es válido. |
Comentarios
La función QueryServiceConfig devuelve la información de configuración del servicio que se mantiene en el Registro para un servicio determinado. Esta información de configuración la establece primero un programa de control de servicio mediante la función CreateService . Es posible que un programa de configuración de servicio haya actualizado esta información mediante la función ChangeServiceConfig .
Si el servicio se estaba ejecutando cuando se cambió por última vez la información de configuración, la información devuelta por QueryServiceConfig no reflejará la configuración actual del servicio. En su lugar, reflejará la configuración del servicio cuando se ejecute a continuación. La clave DisplayName es una excepción a esto. Cuando se cambia la clave DisplayName , surte efecto inmediatamente, independientemente de si el servicio se está ejecutando.
Ejemplos
Para obtener un ejemplo, consulte Consulta de la configuración de un servicio.
Nota
El encabezado winsvc.h define QueryServiceConfig como un 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 neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en 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 |