国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用戶層加載驅動 卸載驅動源碼

2019-11-14 12:56:36
字體:
來源:轉載
供稿:網友
#include < Winsvc.h>CString s1 = TEXT("MyDriver1.sys"); //lpServiceNameCString s2 = TEXT("C://MyDriver1.sys");//lpPathNameBOOL CMFCapplication1Dlg::jiazaiqudong(LPCTSTR lpServiceName, LPCTSTR lpPathName)//加載驅動{	SC_HANDLE ScManagerHandle = NULL;	SC_HANDLE sc_CreateHanle = NULL;	ScManagerHandle = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_access);//建立了一個連接到服務控制管理器,并打開指定的數據庫	if (NULL == ScManagerHandle)	{		TRACE("OpenSCManager fail");		UpdateData(FALSE);		return FALSE;	}	sc_CreateHanle = CreateService(		ScManagerHandle,		lpServiceName,//用于創建登記數據庫中的關鍵字		lpServiceName,//用于用戶界面標識服務		SC_MANAGER_ALL_ACCESS,//指定服務返回類型		SERVICE_KERNEL_DRIVER,//加載類型為:驅動類型		SERVICE_DEMAND_START,//指定何時啟動服務		SERVICE_ERROR_IGNORE,//忽略異常		lpPathName,//加載驅動的路徑		NULL,		NULL,		NULL,		NULL,		NULL		);	if (sc_CreateHanle == NULL)	{		if (ERROR_SERVICE_EXISTS == GetLastError())		{			m_FilePath = "驅動已經加載";			UpdateData(FALSE);			return FALSE;		}		sc_CreateHanle = OpenService(ScManagerHandle, lpServiceName, SC_MANAGER_ALL_ACCESS);		if (sc_CreateHanle == NULL)			return FALSE;	}	StartService(sc_CreateHanle, NULL, NULL);	m_FilePath = "驅動加載成功";	UpdateData(FALSE);	CloseServiceHandle(sc_CreateHanle);	CloseServiceHandle(ScManagerHandle);	return TRUE;}BOOL CMFCApplication1Dlg::xiezaiqudong(LPCTSTR lpServiceName)//卸載驅動程序  {		BOOL bRet = FALSE;		SC_HANDLE hServiceMgr = NULL;//SCM管理器的句柄  		SC_HANDLE hServiceDDK = NULL;//NT驅動程序的服務句柄  		SERVICE_STATUS SvrSta;		//打開SCM管理器  		hServiceMgr = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);		if (hServiceMgr == NULL)		{			//帶開SCM管理器失敗  			PRintf("OpenSCManager() Faild %d ! /n", GetLastError());			bRet = FALSE;			goto BeforeLeave;		}		else		{			//帶開SCM管理器失敗成功  			printf("OpenSCManager() ok ! /n");		}		//打開驅動所對應的服務  		hServiceDDK = OpenService(hServiceMgr, lpServiceName, SERVICE_ALL_ACCESS);		if (hServiceDDK == NULL)		{			//打開驅動所對應的服務失敗  			printf("OpenService() Faild %d ! /n", GetLastError());			bRet = FALSE;			goto BeforeLeave;		}		else		{			printf("OpenService() ok ! /n");		}		//停止驅動程序,如果停止失敗,只有重新啟動才能,再動態加載。    		if (!ControlService(hServiceDDK, SERVICE_CONTROL_STOP, &SvrSta))		{			printf("ControlService() Faild %d !/n", GetLastError());		}		else		{			//打開驅動所對應的失敗  			printf("ControlService() ok !/n");		}		//動態卸載驅動程序。    		if (!DeleteService(hServiceDDK))		{			//卸載失敗  			printf("DeleteSrevice() Faild %d !/n", GetLastError());		}		else		{			//卸載成功  			printf("DelServer:deleteSrevice() ok !/n");		}		bRet = TRUE;	BeforeLeave:		//離開前關閉打開的句柄  		if (hServiceDDK)		{			CloseServiceHandle(hServiceDDK);		}		if (hServiceMgr)		{			CloseServiceHandle(hServiceMgr);		}		return bRet;		return TRUE;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绥宁县| 汝城县| 南京市| 榆中县| 永城市| 阿拉善右旗| 六盘水市| 安溪县| 仙桃市| 鄂托克前旗| 德令哈市| 高邮市| 大埔县| 靖边县| 大埔区| 马龙县| 寿阳县| 邯郸县| 措美县| 衡阳市| 禄劝| 漯河市| 右玉县| 林芝县| 枣强县| 苍山县| 赣州市| 安阳县| 剑阁县| 夹江县| 沁阳市| 保德县| 西城区| 黑水县| 万盛区| 贺兰县| 罗城| 桐庐县| 桐乡市| 罗城| 康马县|