首页
社区
课程
招聘
初学者有关驱动的问题,求大牛
发表于: 2012-12-30 15:45 6015

初学者有关驱动的问题,求大牛

2012-12-30 15:45
6015
因为新学驱动,所以对驱动编程有点疑问。
我编写一个驱动程序,然后在入口点设置断点,运行后。但是因为驱动是开机就加载的,而该驱动主要是获得一些进程信息,在刚开机的时候仅有system进程启动。跑完驱动后,在windbg中按g运行到Windows开机结束,这个时候大部分进程都已经启动了。而我需要这个时候执行驱动的入口点函数,不知道怎么操作。
我知道驱动会利用服务加载,但是在注册表中可以看到该服务。而使用Windows自带的服务管理器却看不到,是否是驱动加载后服务也被卸载了,使用自己编写的StartService函数也无法打开。
希望大牛能告诉我下在驱动加载完后如何调用驱动入口点函数,可能这些描述中存在很多问题,望指正

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (15)
雪    币: 415
活跃值: (34)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
你都可以开机启动了,常驻个系统监控线程不就行了。
2012-12-30 15:49
0
雪    币: 79
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
驱动不是自动启动吗?我主要是想问在加载驱动后,如何在去执行驱动中的函数?
2012-12-30 16:03
0
雪    币: 371
活跃值: (72)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
创建个系统线程,不断检查是否满足条件,满足就运行你自己的函数贝~
2012-12-30 16:51
0
雪    币: 79
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
能不能问下驱动开机加载到电脑后,执行完DriverEntry函数后,没有卸载驱动,那驱动以什么形式存在,注册了服务,但是系统的服务管理器里面没有?要在执行DriverEntry函数有没有可能?
2012-12-30 17:25
0
雪    币: 130
活跃值: (1005)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
应用层通讯调用
5楼的问题好难
2012-12-30 21:08
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
IRP Routine

IRP_MJ_CREATE IRP_MJ_READ IRP_MJ_PNP

入门请看 《Windows驱动开发技术详解》
2012-12-30 23:36
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
入口点函数是有系统调用的。你只能注册irp派遣函数。如果要调用irp派遣,再写个自启动的应用程序,和驱动通信就可以。
2012-12-31 00:01
0
雪    币: 79
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
谢谢推荐的书本,我注册了IRP请求的函数,但是目前疑问是这个驱动还有没有可能在从DriverEntry开始执行。还是说只有加载驱动的时候才有可能执行这个函数?
2012-12-31 00:03
0
雪    币: 79
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
问下驱动注册了一个服务,然后指向该驱动,为什么在Windows自带的服务管理器中看不到这个服务?
2012-12-31 00:04
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
先看书吧

Ring3 用 DeviceIoControl 发送 控制码 到 Ring0

Ring0 用IRP Routine 接收 控制码
2012-12-31 00:11
0
雪    币: 79
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
这个我知道,应用层跟内核的通信。我现在主要是因为有些函数写在了DriverEntry中,而有没有方法能执行DriverEntry函数呢?还是说只能将这个函数改了。。。
2012-12-31 08:54
0
雪    币: 107
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
要么IOCTL通讯 要么自己建立线程监控到合适的时机 再次获取进程信息

不要死磕DRIVERENTRY了
你要执行的是DRIVERENTRY中某段代码 而不是DRIVERENTRY这个函数

就好比应用层你要执行某些功能 而不是一遍又一遍的执行main函数
2012-12-31 09:09
0
雪    币: 79
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
嗯。。。可不可以将我要执行的这段代码放在IRP请求里面(判断code后执行的代码)但是放在里面后,我试过好像会出现编译上的错误。有没有人有过这种错误。
2012-12-31 17:19
0
雪    币: 415
活跃值: (34)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
15
晕,驱动入口建一个系统线程专门处理这个问题,不要死读书。
2013-1-2 10:36
0
雪    币: 79
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
好的,我差不多知道了,也许是钻了牛角尖。感谢各位的回答,特别感谢tydef和DriverAsm的回答,kx我就给tydef好了,希望各位不要介意。。
2013-1-2 15:06
0
游客
登录 | 注册 方可回帖
返回
//