fanweik
驱动牛犊
驱动牛犊
  • 注册日期2005-10-09
  • 最后登录2010-03-05
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望24点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
阅读:1120回复:0

多DeviceObject问题

楼主#
更多 发布于:2008-08-26 22:12
因是wdm的初学者,对wdm模型的理解上有一些问题向大家请教。
1。如何在一个DriverObject下挂载多个DeviceObject? 据我所知,可通过在AddDevice函数中调用IoCreateDevice和IoAttachDeviceToDeviceStack生成一个DeviceObject并把它挂载到设备堆栈中。如果对另一设备调用同样的过程,则在堆栈中此设备将被挂到另一设备之上,而不是并行地挂在堆栈里。请问如何操作?
2。若上述的过程可能,从I/O管理器发出的IRP是如何发送到这些并行的设备上的?
3。我在阅读"Programming the Microsoft Windows Driver Model eBook" 中文版时,被以下的陈述所迷惑,不知如何做,
"
实际上,S5933有同时进行DMA读操作和DMA写操作的能力,但上面代码没有明显地表现这一点。我写的PKTDMA一次仅能执行一个操作(或者读或者写)。为了实现允许同时发生两种操作的驱动程序,你需要,一、实现分离的读写IRP队列,二、创建两个设备对象和两个适配器对象(一对用于读,一对用于写),这样就可以顺利地在AllocateAdapterChannel中多次排队相同的对象。我认为把额外的复杂代码加入到例子中会使你感到迷惑。"

如何做到1和2 点(一、实现分离的读写IRP队列,二、创建两个设备对象和两个适配器对象),能否请各位高手给个提示,拜托。如果有源代码,能否给我发一个以作参考(fanweik@hotmail.com)。

谢谢 并 拜上
游客

返回顶部