阅读:3911回复:43
有没有做过storage mini port driver的朋友
从scsi miniport 改过来要做的东西多么?是不是一定要支持pnp?
|
|
最新喜欢:![]() |
沙发#
发布于:2004-05-13 17:59
奇怪,你自己不是做过吗?忘了你的的猛贴?
|
|
板凳#
发布于:2004-05-13 18:07
改什么东西啊?
从ddk上来看,好像可以不支持pnp,下面是ddk 里面的原话: Although Windows? 2000 is a Plug and Play operating system, by default SCSI miniports are run as legacy drivers. The HBA for a legacy miniport driver cannot be removed from the system while it is running, nor are legacy miniports automatically detected when added to a running system. These limitations might be acceptable for certain HBAs, but SCSI miniports for PCMCIA/CardBus HBAs and HBAs in laptops should support Plug and Play |
|
|
地板#
发布于:2004-05-14 09:53
slwqw,见笑了,我那时候只是知道理论的,没有真的写过,现在老板说了performance的问题一定要搞定,赶鸭子上架阿,得写了,脑子一片空白的说,所以想找找看没有做过的,好少走点弯路阿。
deltali老兄,你说的是scsi port driver啊,storage port可说是要哦,虚拟设备怎么支持pnp呢,最近被pnp困扰死了 |
|
地下室#
发布于:2004-05-14 13:37
恩,我不是很懂得说,好像没在ddk中找到storage port driver这个词。
我想虚拟设备应该也可以支持pnp吧,因为是分层的结构,如果你能通过发送一个信息到总线,报告有设备添加,后面的东西就和是否有具体设备无关了。 |
|
|
5楼#
发布于:2004-05-14 14:56
刚才用storage port第一次试过了,不行啊,driverentry 过去以后就unload driver了,你的ddk是最新的3790的么
|
|
6楼#
发布于:2004-05-14 15:53
不是,看来这是个新东西啊,我不懂。
|
|
|
7楼#
发布于:2004-05-14 16:35
记得scsi mini port driver的pnp好像就是一个function吧?没有那个function,最明显的缺点就是不能suspend
|
|
|
8楼#
发布于:2004-05-14 16:57
rayyang2000,你说得不错,你说的function是scsiadaptercontrol函数吧。如果要driver支持pnp是要实现scsiadaptercontrol的,关键问题是我不知道这个该死的storage port是要求driver支持pnp还是要求device也是pnp的。
|
|
9楼#
发布于:2004-05-16 22:57
你这个问题比较怪异哦
driver里面做了pnp routines,对应的do不就有了pnp了吗? 如果driver不做pnp routines,do又怎么能够响应pnp irp呢? |
|
|
10楼#
发布于:2004-05-17 09:20
你这话说得不错,driver上的确应该支持pnp,do才能够支持pnp,这个我很同意,而且我也尝试了一下实现了HwScsiAdapterControl函数,从理论上来说应该说这个driver已经支持pnp了(ddk上miniport部分是这么说的)。但是感觉pnp manager没有找到这个device阿,因为miniport里面没有函数专门去相应pnp irq啊,都是port driver来响应的,而且我的一个美国的同事他说他和ms的人说过这个问题,他说要做一个scsi虚拟设备支持pnp,要实现一个virtual的bus driver,更神奇了。
对pnp和driver之间怎么交互你有所了解么,给我大概的说说吧,谢谢了。:) |
|
11楼#
发布于:2004-05-17 09:58
你这话说得不错,driver上的确应该支持pnp,do才能够支持pnp,这个我很同意,而且我也尝试了一下实现了HwScsiAdapterControl函数,从理论上来说应该说这个driver已经支持pnp了(ddk上miniport部分是这么说的)。但是感觉pnp manager没有找到这个device阿,因为miniport里面没有函数专门去相应pnp irq啊,都是port driver来响应的,而且我的一个美国的同事他说他和ms的人说过这个问题,他说要做一个scsi虚拟设备支持pnp,要实现一个virtual的bus driver,更神奇了。 最近我也接受指示在猛搞这方面。 可参见:http://www.driverdevelop.com/forum/viewthread.php?tid=42867 他的做法很有借鉴意义。Virtual Bus Driver应该是需要的,用它来支持pnp irp,至于怎么个弄法,我也有些疑问。虚拟设备和虚拟Bus 挂的时候,hardwareID怎么设我不清楚,miniport driver中没有adddevice例程。 希望能一起探讨。 |
|
|
12楼#
发布于:2004-05-17 11:10
确实比较酷,但是这下我的疑问更多了,首先scsi driver怎么表示在这个bus 上面呢?可能就是你说的挂吧,这个bus在registry entry里面的PnpInterface应该是多少?晕阿code也没有,先去看看ddk里面有没有什么sample吧,没想到还要搞bus driver.一起研究吧。
|
|
13楼#
发布于:2004-05-17 11:58
确实比较酷,但是这下我的疑问更多了,首先scsi driver怎么表示在这个bus 上面呢?可能就是你说的挂吧,这个bus在registry entry里面的PnpInterface应该是多少?晕阿code也没有,先去看看ddk里面有没有什么sample吧,没想到还要搞bus driver.一起研究吧。 说说我的理解吧,也不一定对,仅做交流。 1.pnpinterface的值和Miniport driver中AdapterInterfaceType的值应该一样; 2.假设scsi miniport driver 的hardwareid为hid1,virtual bus driver为vbus,则win32应用程序中对vbus发plugin hid1命令时, vbus就把hid1挂在自身上了 p.s. bus driver 如lu0所说,参见toaster即可,大部分功能均已实现。 我的mail:hawkforest@hotmail.com |
|
|
14楼#
发布于:2004-05-17 14:11
1.pnpinterface的值和Miniport driver中AdapterInterfaceType的值应该一样;
刚才查了一下AdapterInterfaceType(INTERFACE_TYPE类型)是enum的,那我们自己写的virtual bus是要写什么值呢,同意你的观点pnpinterface和AdapterInterfaceType保持一致用来支持pnp 2.假设scsi miniport driver 的hardwareid为hid1,virtual bus driver为vbus,则win32应用程序中对vbus发plugin hid1命令时, vbus就把hid1挂在自身上了 这个和你理解差不多,相信scsiportinitialize()的时候会call virtual bus上的pnp相关函数来查询设备和hardwareid. 现在正在读toaster |
|
15楼#
发布于:2004-05-17 17:27
强烈关注
|
|
|
16楼#
发布于:2004-05-17 18:01
刚才又看了一下,daemon tools用的是自己写的一个bus driver。但是他也没用storage port啊,怎么提高performance的呢?
看了一下nt里面的scsi port driver,ScsiPortInitialize()里面直接就call了hwscsifindadapter().大家都想想办法 |
|
17楼#
发布于:2004-05-17 18:34
刚才又看了一下,daemon tools用的是自己写的一个bus driver。但是他也没用storage port啊,怎么提高performance的呢? 你这里的performance是指什么?用了storage port就一定会提高效率?听一国外朋友说,port driver其实就是一个bus driver,本身也是支持pnp的,参见ScsiPortNotification(SCSI_NOTIFICATION_TYPE =BusChangeDetected);只不过我们无法取到它的execution context。 |
|
|
18楼#
发布于:2004-05-18 09:12
performance就是虚拟设备的Read/write的速度阿。用storage port就可以没有ScsiPortNotification的context limitation了,速度自然就可以上来。ms还准备出一个iscsi port目前正在测试。花样真多,我已经没有思路了。
高手召唤中 |
|
19楼#
发布于:2004-05-18 09:54
performance就是虚拟设备的Read/write的速度阿。用storage port就可以没有ScsiPortNotification的context limitation了,速度自然就可以上来。ms还准备出一个iscsi port目前正在测试。花样真多,我已经没有思路了。 你现在准备用Port Driver来实现了?写Port Driver方面的资料好象不多诶,有什么好的资料可以推荐参考下吗?你以前提过的StorageCraft产品是那个什么VSPort吧? |
|
|
上一页
下一页