阅读:1731回复:5
win2k的driver之间的通讯?
win2k的driver之间的通讯
两个driver(不同类)之间可以使用类似DeviceIoControl的函数吗?有没有这样的函数? |
|
最新喜欢:eyeszh... |
沙发#
发布于:2001-08-27 15:39
有,你在DDK文档里找找,你也可以试试系统CALLBACK对象,我以前用CALLBACK对象做过
|
|
|
板凳#
发布于:2001-08-27 15:57
谢谢大虾回答!
deviceioctrl有内部的,比如mouclass和moufiltr,i8042prt, 但他们都是FILE_DEVICE_MOUSE。 我的两个程序,一个是FILE_DEVICE_mouse, 一个是FILE_DEVICE_unkonw。 可以用zw(create,read,write),但我已经将read,write作了他用,也不能共享。只能打ioctrl的主意。 请问大虾, 你使用callback是在不同的文件类driver中吗? |
|
地板#
发布于:2001-08-28 20:25
在驱动程序间可以用IoCallDriver发送IRP包进行通讯。
|
|
|
地下室#
发布于:2001-08-31 00:16
谢谢你们的帮助!!!
这个问题我几经解决了。是用DriverStudio来解决的。 原来在DriverStudio中,一个驱动程序的service可以是一个对象, 这样通过对象指针可以访问另一驱动的任何成员变量,还可以通过软fifo类,结合事件,互相传递大量的数据。 这简直太方便了!太方便了!!! 编了一个月的驱动,简直就是进行了一次“长征”! 有时叫天不灵,入地无门,头撞铁板,眼冒金星,不知东南。 胡打乱闯,四处溜达,浪费不少时间,做了太多太多的无用功。 忽然有一天,以前看不懂的代码,不会用的程序、工具,安不 上的驱动,无可奈何的蓝屏。。。杜有了解决的办法。仔细想想 以前的无用功,也不是真的没有功劳。长征是播种机,长征是革 命的摇篮,长征是革命的熔炉...... 这里向各位欲写驱动的难友进言: 1。先看基础知识,比如<wdm驱动程序编程指南〉 2。看一些NT自带和书上带的例子,并使他们能编译并安装、执行。 这就需要熟悉一些NT和ds提供的小工具,比如命令行的编译工 具、设置工具,驱动的安装工具、调试工具。 3。研究代码,细节上搞清楚信息的控制关系,代码的执行次序, 一些最基本的函数用法,irp结构及其在不同时期的数据特点, 大的方面,搞清楚DRIVER,SERVICE,DEVICE之间的关系,pdo与 fdo的关系;BUS DRIVER, FUNCTION DRIVER, CLASS DRIVER, FILTER DRIVER 的关系。 了解了这些,学会了用这些知识,相当与学会了汇编语言。而 DRIVER STUDIO 相当于高级语言。由于有了前面的基础知识,你对 DRIVER STUDIO 中的结构和编程方法才会有叫深刻的理解和认识。 我开始就一点也看不懂它带的例子。怎么这么简练?编译好了, 也不会用。等把前面的知识基本搞清楚了,再看这些例子,方佛 以前学PASCAL和C++语言,由于先用汇编写过半年的程序,高级语言 中的每一句,都能大概知道是怎么由汇编完成的,因此学的非常 顺利,EASY。 希望大家的长征时间能短一些。 |
|
5楼#
发布于:2001-08-31 00:21
谢谢你们的帮助!!!
这个问题我几经解决了。是用DriverStudio来解决的。 原来在DriverStudio中,一个驱动程序的service可以是一个对象, 这样通过对象指针可以访问另一驱动的任何成员变量,还可以通过软fifo类,结合事件,互相传递大量的数据。 这简直太方便了!太方便了!!! 编了一个月的驱动,简直就是进行了一次“长征”! 有时叫天不灵,入地无门,头撞铁板,眼冒金星,不知东南。 胡打乱闯,四处溜达,浪费不少时间,做了太多太多的无用功。 忽然有一天,以前看不懂的代码,不会用的程序、工具,安不 上的驱动,无可奈何的蓝屏。。。杜有了解决的办法。仔细想想 以前的无用功,也不是真的没有功劳。长征是播种机,长征是革 命的摇篮,长征是革命的熔炉...... 这里向各位欲写驱动的难友进言: 1。先看基础知识,比如“wdm驱动程序编程指南” 2。看一些NT自带和书上带的例子,并使他们能编译并安装、执行。 这就需要熟悉一些NT和ds提供的小工具,比如命令行的编译工 具、设置工具,驱动的安装工具、调试工具。 3。研究代码,细节上搞清楚信息的控制关系,代码的执行次序, 一些最基本的函数用法,irp结构及其在不同时期的数据特点, 大的方面,搞清楚DRIVER,SERVICE,DEVICE之间的关系,pdo与 fdo的关系;BUS DRIVER, FUNCTION DRIVER, CLASS DRIVER, FILTER DRIVER 的关系。 了解了这些,学会了用这些知识,相当与学会了汇编语言。而 DRIVER STUDIO 相当于高级语言。由于有了前面的基础知识,你对 DRIVER STUDIO 中的结构和编程方法才会有叫深刻的理解和认识。 我开始就一点也看不懂它带的例子。怎么这么简练?编译好了, 也不会用。等把前面的知识基本搞清楚了,再看这些例子,方佛 以前学PASCAL和C++语言,由于先用汇编写过半年的程序,高级语言 中的每一句,都能大概知道是怎么由汇编完成的,因此学的非常 顺利,EASY。 希望大家的长征时间能短一些。 |
|