首页
社区
课程
招聘
[求助]两个驱动间通信
发表于: 2013-12-22 20:20 6467

[求助]两个驱动间通信

2013-12-22 20:20
6467
我想让两个驱动之间实现通信,搜索了很久一直没解决,希望一个驱动传递一个设备对象的指针到另外一个驱动。

2014年3月19日:(自己解决了通信,在后面)

先安装启动驱动A,再安装启动驱动B,最后用那个用户层exe。
就能看到我从驱动A发了个字符串“fuck”发到驱动B。

具体的在Windows驱动开发技术详解第11章,我略做改动,就不详细讲了哈



驱动之间通信.rar

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
//提供数据或者导出函数的设备名
RtlInitUnicodeString(&DeviceName,L"\\Device\XXXX");
//通过设备名获取其设备对象
Status = IoGetDeviceObjectPointer(&DeviceName,GENERIC_READ,&FileObject,&DeviceObject);
//设备对象的DeviceExtension里面存放着双方预定义的结构体,里面可以存变量或者函数指针
Extension = DeviceObject->DeviceExtension;
取到函数指针就可以直接调用对方的函数了。。。
2013-12-22 20:42
0
雪    币: 53
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我试试!    顺便我还是想问问通过IRP能传递不
2013-12-22 20:45
0
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
ZwCreateFile之后ZwDeviceIoControlFile传数据就行了,和RING3调RING0应该是一样的
2013-12-22 20:48
0
雪    币: 53
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我也试过,但是没有找到相关的代码举例,自己用这几个函数老是蓝屏,所以希望有个简单的代码举例
2013-12-22 20:53
0
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
2个驱动之间通信方式有很多,动动手码码的事,介绍一种方式,先创建一个内存映射,一个驱动往里面写数据,然后另一个驱动就可以读数据了,为了实现同步,还可以使用事件对象
2013-12-22 23:01
0
雪    币: 53
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
AioliaSky说的方法是我最想实现的,但是自己动手时蓝屏无限,驱动资料不好找,一搜索全是驱动与应用层通信,所以求个代码也是无奈。 只有初学者园地区才能悬赏,所以本帖转到http://bbs.pediy.com/showthread.php?p=1250190#post1250190
2013-12-26 13:16
0
游客
登录 | 注册 方可回帖
返回
//