国产探花免费观看_亚洲丰满少妇自慰呻吟_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;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新乐市| 宽城| 临高县| 武隆县| 禄劝| 宜兰市| 定安县| 沁水县| 泸西县| 盱眙县| 阆中市| 平遥县| 措美县| 拉萨市| 闵行区| 静安区| 上犹县| 濮阳县| 德州市| 盱眙县| 大英县| 中牟县| 池州市| 寿光市| 北川| 佛冈县| 星座| 三穗县| 蛟河市| 孝昌县| 得荣县| 陇南市| 巴东县| 鹤壁市| 安宁市| 进贤县| 宝清县| 洪雅县| 彭阳县| 灵璧县| 通江县|