|
Overview |
|
|
|
Group |
|
|
|
Quick Info
Windows NT
| Yes
| Win95
| No
| Win32s
| No
| Import Library
| advapi32.lib
| Header File
| winsvc.h
| Unicode
| WinNT
| Platform Notes
| None
|
|
|
OpenSCManager
The
OpenSCManager function establishes a connection to the service control manager on the
specified computer and opens the specified database.
SC_HANDLE OpenSCManager(
LPCTSTR lpMachineName,
| // pointer to machine name string
|
LPCTSTR lpDatabaseName,
| // pointer to database name string
|
DWORD dwDesiredAccess
| // type of access
|
);
|
|
Parameters
lpMachineName
Points to a null-terminated string that names the target computer. If the
pointer is NULL or if it points to an empty string, the function connects to the
service control manager on the local computer.
lpDatabaseName
Points to a null-terminated string that names the service control manager
database to open. This string should specify ServicesActive. If the pointer is
NULL, the ServicesActive database is opened by default.
dwDesiredAccess
Specifies the access to the service control manager. Before granting the
requested access, the system checks the access token of the calling process against
the discretionary access-control list of the security descriptor associated
with the service control manager object. The SC_MANAGER_CONNECT access type is
implicitly specified by calling this function. In addition, any or all of the
following service control manager object access types can be specified:
| Includes STANDARD_RIGHTS_REQUIRED, in addition to all of the access types
listed in this table.
|
| Enables connecting to the service control manager.
|
SC_MANAGER_CREATE_SERVICE
|
|
| Enables calling of the CreateService function to create a service object and add it to the database.
|
SC_MANAGER_ENUMERATE_SERVICE
|
|
| Enables calling of the EnumServicesStatus function to list the services that are in the database.
|
SC_MANAGER_QUERY_LOCK_STATUS
|
|
| Enables calling of the QueryServiceLockStatus function to retrieve the lock status information for the database.
|
The
dwDesiredAccess parameter can specify any or all of the following generic access types:
Generic access
| Service manager access
|
GENERIC_READ
| Combines the following access: STANDARD_RIGHTS_READ,
SC_MANAGER_ENUMERATE_SERVICE, and SC_MANAGER_QUERY_LOCK_STATUS.
|
GENERIC_WRITE
| Combines the following access: STANDARD_RIGHTS_WRITE,
SC_MANAGER_CREATE_SERVICE, and SC_MANAGER_MODIFY_BOOT_CONFIG.
|
GENERIC_EXECUTE
| Combines the following access: STANDARD_RIGHTS_EXECUTE, SC_MANAGER_CONNECT,
and SC_MANAGER_LOCK.
|
Return Values
If the function succeeds, the return value is a handle to the specified
service control manager database.
If the function fails, the return value is NULL. To get extended error
information, call
GetLastError.
Errors
The following error codes may be set by the service control manager. Other
error codes may be set by the registry functions that are called by the service
control manager.
Error code
| Meaning
|
ERROR_ACCESS_DENIED
| The requested access was denied.
|
ERROR_DATABASE_DOES_NOT_EXIST
| The specified database does not exist.
|
ERROR_INVALID_PARAMETER
| A parameter that was specified is invalid.
|
Remarks
When a process uses the
OpenSCManager function to open a handle to a service control manager database, the system
performs a security check before granting the requested access. All processes
are permitted SC_MANAGER_CONNECT, SC_MANAGER_ENUMERATE_SERVICE, and
SC_MANAGER_QUERY_LOCK_STATUS access to all service control manager databases. This enables
any process to open a service control manager database handle that it can use in
the
OpenService,
EnumServicesStatus, and
QueryServiceLockStatus functions. Only processes with Administrator privileges are able to open a
database handle used by the
CreateService and
LockServiceDatabase functions.
The calling process can use the returned handle to identify the database in
the following functions, if the appropriate access rights are enabled:
CreateService
EnumServicesStatus
LockServiceDatabase
OpenService
QueryServiceLockStatus
The returned handle is only valid for the process that called the
OpenSCManager function. It can be closed by calling the
CloseServiceHandle function.
See Also
CloseServiceHandle,
CreateService,
EnumServicesStatus,
LockServiceDatabase,
OpenService,
QueryServiceLockStatus
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database