鱼C论坛

 找回密码
 立即注册
查看: 3653|回复: 2

加载驱动问题

[复制链接]
发表于 2012-12-27 17:33:24 | 显示全部楼层 |阅读模式
5鱼币
  1. #include "stdio.h"
  2. #include "windows.h"
  3. #include <winioctl.h>
  4. void jia(char lpDriverName[255],char lpDriverPathName[255]);//加载函数
  5. void xie(char szSvrName[255]);
  6. void main()//主函数
  7. {
  8. jia("event.sys","C:\\工程\\DDK\\DDK\\ddk_check\\event.sys");//加载函数
  9. Sleep(5000);
  10. xie("event.sys");//卸载函数
  11. }
  12. void jia(char lpDriverName[255],char lpDriverPathName[255])
  13. {
  14. SC_HANDLE hServiceMgr=NULL;//SCM管理器的句柄
  15. SC_HANDLE hServiceDDK=NULL;//NT驱动程序的服务句柄
  16. //打开服务控制管理器
  17. hServiceMgr= OpenSCManager( NULL, NULL, SC_MANAGER_ALL_ACCESS );
  18. //创建驱动所对应的服务
  19. hServiceDDK = CreateService( hServiceMgr,
  20. lpDriverName, //驱动程序的在注册表中的名字
  21. lpDriverName, // 注册表驱动程序的 DisplayName 值
  22. SERVICE_ALL_ACCESS, // 加载驱动程序的访问权限
  23. SERVICE_KERNEL_DRIVER,// 表示加载的服务是驱动程序
  24. SERVICE_DEMAND_START, // 注册表驱动程序的 Start 值
  25. SERVICE_ERROR_IGNORE, // 注册表驱动程序的 ErrorControl 值
  26. lpDriverPathName, // 注册表驱动程序的 ImagePath 值
  27. NULL,NULL,NULL, NULL, NULL);
  28. // 驱动程序已经加载,只需要打开
  29. hServiceDDK = OpenService( hServiceMgr, lpDriverName, SERVICE_ALL_ACCESS );
  30. //关闭句柄
  31. CloseServiceHandle(hServiceDDK);
  32. CloseServiceHandle(hServiceMgr);
  33. }
  34. void xie(char szSvrName[255])
  35. {
  36. SC_HANDLE hSCM=NULL;//SCM管理器的句柄,用来存放OpenSCManager的返回值
  37. SC_HANDLE hService=NULL;//NT驱动程序的服务句柄,用来存放OpenService的返回值
  38. SERVICE_STATUS SvrSta;
  39. //打开SCM管理器
  40. hSCM = OpenSCManager( NULL, NULL, SC_MANAGER_ALL_ACCESS );
  41. //打开驱动所对应的服务
  42. hService = OpenService( hSCM, szSvrName, SERVICE_ALL_ACCESS );
  43. //停止驱动程序,
  44. ControlService( hService, SERVICE_CONTROL_STOP , &SvrSta );
  45. //动态卸载驱动服务
  46. DeleteService( hService );
  47. //关闭句柄
  48. CloseServiceHandle(hSCM);
  49. CloseServiceHandle(hService);
  50. }
复制代码

加载驱动  没反应
那里错了

最佳答案

查看完整内容

这台电脑环境没配置,无法测试 你没有StartService 参数( 服务句柄, NULL, NULL); 如果StartService后还是不行,那么就是传参错误了 如果确定还不行,就把参数改成char* 用指针来传
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-12-27 17:33:25 | 显示全部楼层
本帖最后由 メ㊣逆ご帅☆ 于 2012-12-28 22:42 编辑

这台电脑环境没配置,无法测试
你没有StartService
参数( 服务句柄, NULL, NULL);
如果StartService后还是不行,那么就是传参错误了

如果确定还不行,就把参数改成char* 用指针来传
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-12-27 17:50:30 | 显示全部楼层
驱动好久没搞了,友情支持一下。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-22 00:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表