安裝邏輯
- 打開本地服務管理器
- 創建服務
代碼
const char pServiceName[] = "lockpage";
const char pServiceInfo[] = "lock web explorer main page";
const char pDriverPath[] = "lockpage.sys";
SC_HANDLE hSCmanager = OpenSCManager(NULL, /** 連接到本地計算機 */
NULL /** 默認服務管理控制數據庫:SERVICES_ACTIVE_DATABASE */
SC_MANAGER_CREATE_SERVICE /** 權限:服務創建權限,配合CreateServiceA 將服務添加到數據庫中 */);
if (hSCmanager == NULL)
{
return (int)FALSE;
}
HANDLE hService = CreateService(hSCmanager, /** 服務管理器句柄 */
pServiceName, /** 服務名 */
pServiceInfo, /** 服務描述 */
SERVICE_ALL_ACCESS, /** 所有標準權限*/
SERVICE_KERNEL_DRIVER,/** 服務類型:驅動服務 */
SERVICE_DEMAND_START, /** 開始類型:有服務管理器調用StartService來開啓 */
SERVICE_ERROR_IGNORE, /** 服務啓動失敗的處理方式:忽略錯誤繼續啓動 */
pDriverPath, /** 二進制文件路徑 */
0, /** 組名稱,不屬於組。該服務所屬組的名稱 */
0, /** 服務所屬組的唯一標記值 */
0, /** 依賴:無任何依賴 */
0, /** 用戶名稱:系統用戶。服務應該運行在哪個用戶權限下 */
0, /** 密碼:無密碼。對應用戶名的密碼 */);
if (hService == NULL)
{
return (int)FALSE;
}