Función OpenSCManagerA (winsvc.h)
Establece una conexión con el administrador de control de servicio en el equipo especificado y abre la base de datos de Service Control Manager especificada.
Sintaxis
SC_HANDLE OpenSCManagerA(
[in, optional] LPCSTR lpMachineName,
[in, optional] LPCSTR lpDatabaseName,
[in] DWORD dwDesiredAccess
);
Parámetros
[in, optional] lpMachineName
Nombre del equipo de destino. Si el puntero es NULL o apunta a una cadena vacía, la función se conecta al administrador de control de servicio en el equipo local.
[in, optional] lpDatabaseName
Nombre de la base de datos del administrador de control de servicios. Este parámetro debe establecerse en SERVICES_ACTIVE_DATABASE. Si es NULL, la base de datos SERVICES_ACTIVE_DATABASE se abre de forma predeterminada.
[in] dwDesiredAccess
Acceso al administrador de control de servicios. Para obtener una lista de los derechos de acceso, consulte Derechos de acceso y seguridad del servicio.
Antes de conceder los derechos de acceso solicitados, 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 administrador de control de servicios.
El SC_MANAGER_CONNECT derecho de acceso se especifica implícitamente mediante una llamada a esta función.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es un identificador de la base de datos del administrador de control de servicio especificada.
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 SCM puede establecer los siguientes códigos de error. Otros códigos de error se pueden establecer mediante las funciones del Registro a las que llama el SCM.
Código devuelto | Descripción |
---|---|
|
Se denegó el acceso solicitado. |
|
La base de datos especificada no existe. |
Observaciones
Cuando un proceso usa la función openSCManager de
Si el usuario actual no tiene acceso adecuado al conectarse a un servicio en otro equipo, se produce un error en la llamada de función OpenSCManager. Para conectarse a un servicio de forma remota, llame a función LogonUser con LOGON32_LOGON_NEW_CREDENTIALS y, a continuación, llame a ImpersonateLoggedOnUser antes de llamar a OpenSCManager. Para obtener más información sobre cómo conectarse a servicios de forma remota, consulte servicios de y RPC/TCP.
Solo los procesos con privilegios de administrador pueden abrir un identificador de base de datos que pueda usar la función CreateService.
El identificador devuelto solo es válido para el proceso que llamó a la función OpenSCManager. Se puede cerrar llamando a la función
Ejemplos
Para obtener un ejemplo, consulte Cambio de la configuración de un servicio.
Nota
El encabezado winsvc.h define OpenSCManager 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