阅读:1551回复:2
关于 tiamo的SCSI Miniport的疑问
最近在学习 tiamo的SCSI Miniport,依然碰到了性能问题,基本原因坛子里的各位大侠都有说明,
也看了nt4的scsiport,发现scsiport只有在DriverStartIo和RequestTimerCall里才会调用其DPC的完成例程,开始下一个StartIo 问题一,有帖子说可以在MINIPORT的请求完成后给自己发一个srb来完成,一直不得其解,是否是要发一个irp包回到miniport的HwStartIo里来完成老的srb? 不过tiamo的miniport里并未生成对象,那么这个srb只能发给scsiport(是不是要通过pathid,tagetid和lun来查找?)对象了,但是scsiport在未完成前一个 irp前又怎么会处理新的请求呢?那自然也就不会送到miniport的HwStartIo里了?不过即便能发下来,HwStartIo里完成的不也只能是新生成的这个irp吗? 那么原先请求的irp包不是依然无法完成吗? 问题二,看了rich的虚拟盘驱动,发现它并没有给自己发srb,而是在miniport的系统线程里,处理完成后直接调用了RequstComplete和NextRequest. 不知道它为什么是可以的,而我要是在自己线程里直接这么调用的话就会蓝屏,不知何故?这一切是否和注册表也有关系呢?还请各位大侠们不吝赐教。 |
|
沙发#
发布于:2008-10-13 10:56
为啥无高手指点啊,因为技术太老,还是俺分太低啊
|
|
板凳#
发布于:2008-10-14 09:28
自己可以顶一顶吧,tooflat是不是版主啊,能否帮忙解答一下啊
|
|