Función OpenServiceA (winsvc.h)
Abre un servicio existente.
Sintaxis
SC_HANDLE OpenServiceA(
[in] SC_HANDLE hSCManager,
[in] LPCSTR lpServiceName,
[in] DWORD dwDesiredAccess
);
Parámetros
[in] hSCManager
Identificador de la base de datos del administrador de control de servicios. La función
[in] lpServiceName
Nombre del servicio que se va a abrir. Este es el nombre especificado por el parámetro lpServiceName de la función CreateService cuando se creó el objeto de servicio, no el nombre para mostrar del servicio que las aplicaciones de interfaz de usuario muestran para identificar el servicio.
La longitud máxima de cadena es de 256 caracteres. La base de datos del Administrador de control de servicios conserva las mayúsculas y minúsculas de los caracteres, pero las comparaciones de nombres de servicio siempre no distinguen mayúsculas de minúsculas. La barra diagonal (/) y la barra diagonal inversa (\) son caracteres de nombre de servicio no válidos.
[in] dwDesiredAccess
Acceso al servicio. Para obtener una lista de los derechos de acceso, consulte Derechos de acceso y seguridad del servicio.
Antes de conceder el acceso solicitado, el sistema comprueba el token de acceso del proceso de llamada en la lista de control de acceso discrecional del descriptor de seguridad asociado al objeto de servicio.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es un identificador para el servicio.
Si se produce un error en la función, el valor devuelto es NULL. Para obtener información de error extendida, llame a GetLastError.
El administrador de control de servicios puede establecer los siguientes códigos de error. Otros 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 acceso al servicio. |
|
El identificador especificado no es válido. |
|
El nombre de servicio especificado no es válido. |
|
El servicio especificado no existe. |
Observaciones
El identificador devuelto solo es válido para el proceso que llamó a OpenService. Se puede cerrar llamando a la función
Para usar OpenService, no se requieren privilegios aparte de SC_MANAGER_CONNECT.
Ejemplos
Para obtener un ejemplo, consulte Iniciar un servicio.
Nota
El encabezado winsvc.h define OpenService 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 XP [solo aplicaciones de escritorio] |
servidor mínimo admitido | Windows Server 2003 [solo aplicaciones de escritorio] |
de la plataforma de destino de |
Windows |
encabezado de |
winsvc.h (incluya Windows.h) |
biblioteca de |
Advapi32.lib |
DLL de |
Advapi32.dll |
Consulte también
QueryServiceConfig de
queryServiceDynamicInformation de
QueryServiceObjectSecurity de