阅读:1349回复:6
两个设备之间直接大量传数据的驱程
我要在两块pci卡上直接传数据,也就是将从一块卡上采集的数据从另一块卡上发出去,请问各位,在没有用户态驱动的情况下,如何在驱程内部直接实现该过程
|
|
|
沙发#
发布于:2002-10-21 10:42
我觉得是不是可以用两个driver共享同一内存的方式来实现呢?因为两个App(在用户态)进程是绝对可以实现的(用内存映射文件)。
|
|
板凳#
发布于:2002-10-21 10:57
我想采用共享内存的方式应该OK。
请参考: http://www.driverdevelop.com/forum/viewthread.php?tid=1891 |
|
地板#
发布于:2002-10-21 12:18
共享内存是能在两者之间传数据的,我的意思是一般的io操作,将由用户发出请求,产生irp,驱动程序完成相应的操作,返回到用户.现在,我希望在用户发出一个通知,驱动程序自动在两个设备之间传输数据,而再也不需要用户的irp, 也就是,完全有设备中断驱动,这样的驱程该如何编制. 呵呵,我是个新手, 许多东西不太明白, 还望大家不吝赐教,谢谢
感谢大家的关注 |
|
地下室#
发布于:2002-10-21 16:11
你的意思是一个设备的驱动程序如何操作另一个硬件的I/O空间吗?
如果是这样的话很简单,你可以用IoCallDriver 将操作请求发给另一个设备。还有一点,WRITE/READ_PORT_XXX()函数可以操作任何端口。只是不知道这样是否危险。我做过一个通用性I/O的SYS DRIVER,用它读写任何端口都能成功。至于如何获知另一个硬件的I/O空间地址,那只有用IoCallDriver。 |
|
|
5楼#
发布于:2002-10-22 21:37
我的想法是这样的,因为我要操做的时同一种硬件,也就是同一个驱程,所以,很容易得相关的两个设备,其后,在某个设备收到中断后,就直接发送给另一设备,而不必通过io管里器来同过包传递
不知到可不可以,是不是有什么危害 :P |
|
|
6楼#
发布于:2002-10-24 09:12
应该没有问题。一个Driver不但可以操作本身设备资源的I/O,也可以操作系统所有范围内的I/O,在内核是没有限制的。只要你清楚相应的I/O操作不会影响其它硬件设备,即这段I/O空间是你的硬件独有。
|
|
|