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

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

用戶層加載驅(qū)動 卸載驅(qū)動源碼

2019-11-14 12:01:44
字體:
供稿:網(wǎng)友
#include < Winsvc.h>CString s1 = TEXT("MyDriver1.sys"); //lpServiceNameCString s2 = TEXT("C://MyDriver1.sys");//lpPathNameBOOL CMFCapplication1Dlg::jiazaiqudong(LPCTSTR lpServiceName, LPCTSTR lpPathName)//加載驅(qū)動{	SC_HANDLE ScManagerHandle = NULL;	SC_HANDLE sc_CreateHanle = NULL;	ScManagerHandle = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_access);//建立了一個連接到服務控制管理器,并打開指定的數(shù)據(jù)庫	if (NULL == ScManagerHandle)	{		TRACE("OpenSCManager fail");		UpdateData(FALSE);		return FALSE;	}	sc_CreateHanle = CreateService(		ScManagerHandle,		lpServiceName,//用于創(chuàng)建登記數(shù)據(jù)庫中的關(guān)鍵字		lpServiceName,//用于用戶界面標識服務		SC_MANAGER_ALL_ACCESS,//指定服務返回類型		SERVICE_KERNEL_DRIVER,//加載類型為:驅(qū)動類型		SERVICE_DEMAND_START,//指定何時啟動服務		SERVICE_ERROR_IGNORE,//忽略異常		lpPathName,//加載驅(qū)動的路徑		NULL,		NULL,		NULL,		NULL,		NULL		);	if (sc_CreateHanle == NULL)	{		if (ERROR_SERVICE_EXISTS == GetLastError())		{			m_FilePath = "驅(qū)動已經(jīng)加載";			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 = "驅(qū)動加載成功";	UpdateData(FALSE);	CloseServiceHandle(sc_CreateHanle);	CloseServiceHandle(ScManagerHandle);	return TRUE;}BOOL CMFCApplication1Dlg::xiezaiqudong(LPCTSTR lpServiceName)//卸載驅(qū)動程序  {		BOOL bRet = FALSE;		SC_HANDLE hServiceMgr = NULL;//SCM管理器的句柄  		SC_HANDLE hServiceDDK = NULL;//NT驅(qū)動程序的服務句柄  		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");		}		//打開驅(qū)動所對應的服務  		hServiceDDK = OpenService(hServiceMgr, lpServiceName, SERVICE_ALL_ACCESS);		if (hServiceDDK == NULL)		{			//打開驅(qū)動所對應的服務失敗  			printf("OpenService() Faild %d ! /n", GetLastError());			bRet = FALSE;			goto BeforeLeave;		}		else		{			printf("OpenService() ok ! /n");		}		//停止驅(qū)動程序,如果停止失敗,只有重新啟動才能,再動態(tài)加載。    		if (!ControlService(hServiceDDK, SERVICE_CONTROL_STOP, &SvrSta))		{			printf("ControlService() Faild %d !/n", GetLastError());		}		else		{			//打開驅(qū)動所對應的失敗  			printf("ControlService() ok !/n");		}		//動態(tài)卸載驅(qū)動程序。    		if (!DeleteService(hServiceDDK))		{			//卸載失敗  			printf("DeleteSrevice() Faild %d !/n", GetLastError());		}		else		{			//卸載成功  			printf("DelServer:deleteSrevice() ok !/n");		}		bRet = TRUE;	BeforeLeave:		//離開前關(guān)閉打開的句柄  		if (hServiceDDK)		{			CloseServiceHandle(hServiceDDK);		}		if (hServiceMgr)		{			CloseServiceHandle(hServiceMgr);		}		return bRet;		return TRUE;}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 秀山| 周至县| 民权县| 巴马| 井冈山市| 象山县| 鲁甸县| 九龙县| 应城市| 太原市| 思南县| 武川县| 绥阳县| 承德县| 海阳市| 砚山县| 沙湾县| 陇川县| 屯留县| 武义县| 吴江市| 富阳市| 施甸县| 扬中市| 云阳县| 江川县| 镇江市| 聂拉木县| 托克托县| 成都市| 三原县| 峨边| 和顺县| 绍兴县| 巩义市| 临沧市| 莱阳市| 宝坻区| 横山县| 建始县| 海安县|