动态加载NT驱动(源码)
2017-05-31 16:41
211 查看
下面代码可以直接加载和卸载驱动,哈哈,拿走不谢
#include <winsvc.h> // function : LoadDriver // purpose : 加载驱动 // // parameter : [IN] lpPath 驱动的完整路径 // [OUT] // // // author : liangyu // created : 2008-7-10 17:19 // *************************************************************** BOOL Ctest2Dlg::LoadDriver(LPTSTR lpPath) { SC_HANDLE hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS); if (NULL == hSCManager) { return FALSE; } SC_HANDLE hService = CreateService(hSCManager, _T("SSDTTool"), _T("SSDTTool Driver"), SERVICE_ALL_ACCESS, SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, SERVICE_ERROR_IGNORE, lpPath, NULL, NULL, NULL, NULL, NULL); if (NULL == hService) { if (ERROR_SERVICE_EXISTS == GetLastError())//如果是"已经存在该驱动"导致的错误则继续 { hService = OpenService(hSCManager, _T("SSDTTool"), SERVICE_ALL_ACCESS); } else { return FALSE; } } StartService(hService, 0, NULL); CloseServiceHandle(hService); CloseServiceHandle(hSCManager); return TRUE; } // *************************************************************** // function : UnLoadDriver // purpose : 卸载驱动 // // parameter : [IN] lpName 服务(驱动在SCM注册的)名字 // [OUT] // // // author : liangyu // created : 2008-7-10 17:41 // *************************************************************** BOOL Ctest2Dlg::UnLoadDriver(LPTSTR lpName) { SC_HANDLE hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS); if (NULL == hSCManager) { return FALSE; } SC_HANDLE hService = OpenService(hSCManager, lpName, SERVICE_ALL_ACCESS); if (NULL == hService) { return FALSE; } SERVICE_STATUS ss; ControlService(hService, SERVICE_CONTROL_STOP, &ss); DeleteService(hService); CloseServiceHandle(hService); CloseServiceHandle(hSCManager); return TRUE; } void Ctest2Dlg::OnBnClickedButton1() { // TODO: 在此添加控件通知处理程序代码 UpdateData(TRUE); LoadDriver((LPSTR)(LPCTSTR)m_path); } void Ctest2Dlg::OnBnClickedButton2() { // TODO: 在此添加控件通知处理程序代码 UnLoadDriver("SSDTTool"); }
相关文章推荐
- 动态加载WinCE驱动实例及源码
- 模块化驱动动态加载
- Windows CE下流驱动的动态加载
- 转:WINCE流驱动的动态加载调试与用EVC快速开发WINCE的流驱动
- WINCE流驱动的动态加载调试与用EVC快速开发WINCE的流驱动
- 读GI源码、学JS编程——Javascript动态加载技术。
- Windows CE下流驱动的动态加载
- 应用层加载NT驱动代码
- JDBC三种方式加载数据库驱动(源码)
- 【原创】WINCE流驱动的动态加载调试
- JDBC三种方式加载数据库驱动(源码)
- (原创)WINCE流驱动的动态加载调试
- Windows CE下流驱动的动态加载
- 转:WINCE流驱动的动态加载调试与用EVC快速开发WINCE的流驱动
- WINCE流驱动的动态加载调试与用EVC快速开发WINCE的流驱动
- ZwSetSystemInformation 动态加载驱动
- ZwSetSystemInformation 动态加载驱动(转)
- WINCE流驱动的动态加载调试与用EVC快速开发WINCE的流驱动
- 也谈流驱动的动态加载
- Windows CE下流驱动的动态加载