加载驱动的相关函数
1:打開SCM管理器函數
SC_HANDLE OpenSCManager(LPCTSTR lpszMachineName,//計算機名稱
LPCTSTR lpszDatabaseName,//scm數據庫名稱
DWORD fdwDesiredAccess); // 使用權限
----Open SCManager 函數打開指定計算機上的service control manager database。其中參數lpszMac
hineName指定計算機名,若為空則指定為本機。參數lpszDatabaseName指定要打開的service control m
anager database,默認為空。
----參數fdwDesiredAccess指定操作的權限,可以為下面取值之一
SC_MANAGER_ALL_ACCESS //所有權限
SC_MANAGER_CONNECT //允許連接service control manager
SC_MANAGER_CREATE_SERVICE //允許創建服務對象并把它加入service control manager database
SC_MANAGER_ENUMERATE_SERVICE //允許枚舉service control manager database中的服務
SC_MANAGER_LOCK //允許鎖住service control manager database
SC_MANAGER_QUERY_LOCK_STATUS //允許獲取servicecontrolmanagerdatabase的封鎖信息
----函數返回值:函數執行成功則返回一個指向service control manager database的句柄,失敗則返回
NULL。
2: 關閉服務句柄
BOOL CloseServiceHandle(SC_HANDLE hSCObject)//要關閉的句柄
3: 創建服務
SC_HANDLE CreateService(
SC_HANDLE hSCManager, //服務控制管理程序維護的登記數據庫的句柄,由系統函數OpenSCManager 返回
LPCTSTR lpServiceName, //以NULL 結尾的服務名,用于創建登記數據庫中的關鍵字
LPCTSTR lpDisplayName, //以NULL 結尾的服務名,用于用戶界面標識服務
DWORD dwDesiredAccess, //指定服務返回類型
DWORD dwServiceType, //指定服務類型
DWORD dwStartType, //指定何時啟動服務
DWORD dwErrorControl, //指定服務啟動失敗的嚴重程度
LPCTSTR lpBinaryPathName, //指定服務程序二進制文件的路徑
LPCTSTR lpLoadOrderGroup, //指定順序裝入的服務組名
LPDWORD lpdwTagId, //忽略,NULL
LPCTSTR lpDependencies, //指定啟動該服務前必須先啟動的服務或服務組
LPCTSTR lpServiceStartName, //以NULL 結尾的字符串,指定服務帳號。如是NULL,則表示使用LocalSystem帳號
LPCTSTR lpPassword //以NULL 結尾的字符串,指定對應的口令。為NULL表示無口令。但使用LocalSystem時填NULL
);
4: 打開服務
SC_HANDLE OpenService(SC_HANDLE schSCManager,//scm數據庫的句柄
LPCTSTR lpszServiceName,//服務名稱
DWORD fdwDesiredAccess);//訪問權限
----OpenService函數打開指定的Service。
----其中參數schSCManager是指向service control manager database的句柄,由OpenSCManager函數返回。
----參數lpszServiceName要打開的服務的名字,注意大小寫。
----參數fdwDesiredAccess指定操作的權限,可以為下面取值之一
SERVICE_ALL_ACCESS //所有權限
SERVICE_CHANGE_CONFIG //允許更改服務的配置
SERVICE_ENUMERATE_DEPENDENTS //允許獲取依賴于該服務的其他服務
SERVICE_INTERROGATE //允許立即獲取服務狀態
SERVICE_PAUSE_CONTINUE //允許暫停和喚醒服務
SERVICE_QUERY_CONFIG //允許獲取服務配置
SERVICE_QUERY_STATU //允許通過訪問service control manager獲取服務狀態
SERVICE_START //允許啟動服務
SERVICE_STOP //允許停止服務
SERVICE_USER_DEFINE_CONTROL //允許用戶指定特殊的服務控制碼
----函數返回值:函數執行成功則返回指向某項服務的句柄,失敗則返回NULL。
5: 控制服務
BOOL ControlService(SC_HANDLE hService,
DWORD dwControl,
LPSERVICE_STATUS lpServiceStatus);
----ControlService函數向Win32service發送控制碼。
----其中參數hService是指向某項服務的句柄,由OpenService函數返回。
----參數dwControl為控制碼,常用的有
SERVICE_CONTROL_STOP //停止服務
SERVICE_CONTROL_PAUSE //暫停服務
SERVICE_CONTROL_CONTINUE //喚醒暫停的服務
SERVICE_CONTROL_INTERROGATE//刷新某服務的狀態
----參數lpServiceStatus指向SERVICE_STATUS結構,用于存放該服務最新的狀態信息。
----函數返回值:函數執行成功則返回True,失敗則返回False。
轉載于:https://www.cnblogs.com/enjoy-life-everyday/p/3472687.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
- 上一篇: c# list 求交使用注意点
- 下一篇: [LeetCode]Add Binary