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

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

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

2019-11-14 12:01:53
字體:
來源:轉載
供稿:網友
#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;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 翁源县| 临桂县| 天水市| 龙陵县| 崇礼县| 高邮市| 鱼台县| 黄大仙区| 咸阳市| 开鲁县| 平定县| 长寿区| 长垣县| 湟中县| 饶阳县| 伊春市| 安国市| 二连浩特市| 阿勒泰市| 洛浦县| 枣阳市| 牙克石市| 渭源县| 宁国市| 柯坪县| 衢州市| 琼中| 吐鲁番市| 安丘市| 万全县| 阳原县| 岳普湖县| 盐山县| 武胜县| 田东县| 瑞昌市| 西乌| 北安市| 龙井市| 永仁县| 桃园市|