OpenSCManager
OpenSCManager
OpenSCManager,函數建立了一個到服務控制管理器的連接,並打開指定的資料庫。
function OpenSCManager(
lpMachineName: PChar,
lpDatabaseName: PChar,
dwDesiredAccess: DWORD): SC_HANDLE; stdcall;
參數
lpMachineName
lpDatabaseName
指向零終止字元串,指定將要打開的服務控制管理資料庫的名稱。此字元串應被置
為 SERVICES_ACTIVE_DATABASE。如果該指針為NULL ,則打開默認的 SERVICES_ACTIVE_DATABASE
資料庫。
dwDesiredAccess
指定服務訪問控制管理器的許可權。在授予要求的許可權前,系統會檢查調用進程的許可權令牌,該令牌針對與服
務控制管理器相關的安全描述符的許可權控制列表。此外,該函數的調用將隱式地指定
SC_MANAGER_CONNECT 的訪問許可權。
此外,下列服務控制管理器對象的訪問類型可以被指定:
SC_MANAGER_ALL_ACCESS 除了所有此表中列出的訪問類型,還包括
STANDARD_RIGHTS_REQUIRED。
SC_MANAGER_CONNECT 可以連接到服務控制管理器。
SC_MANAGER_CREATE_SERVICE 使要求的CreateService函數創建一個服務對象,並將其添加到數
據庫中。
SC_MANAGER_ENUMERATE_SERVICE 使要求的EnumServicesStatus功能清單的服務,這是在資料庫
中。
SC_MANAGER_LOCK 使要求的LockServiceDatabase功能獲得鎖定資料庫。
SC_MANAGER_QUERY_LOCK_STATUS 使要求的QueryServiceLockStatus檢索功能鎖定狀態信息的數據
庫。
返回值
如果函數成功,返回值是一個指定的服務控制管理器資料庫的句柄。
如果函數失敗,返回值為NULL 。
要獲得更詳細的錯誤信息,可以使用GetLastError 獲得錯誤代碼。
ERROR_ACCESS_DENIED 訪問被拒絕.
ERROR_DATABASE_DOES_NOT_EXIST 指定的資料庫不存在。
ERROR_INVALID_PARAMETER 參數無效。