阅读:1975回复:9
如何将scsi miniport做成legacy 的,又如何将他做成pnp的呢?
各位,
我有一个用来虚拟光驱用的miniport driver, 再安装的时候有一些问题与迷惑: 首先,我想把它装成legacy driver,也就是没有HwAdapterControl,也不设注册表中的Parameter\PnPInterface。这样的话可以安装,也可以运行,但是系统会scan出两个我的miniport adapter来,一个正常运行,一个cannot start (Code 10),这个问题有谁见过?如何解决? 其次:我想试着把它改成pnp的,于是实现了HwAdapterControl,也在注册表中写入Parameter\PnPInterface.这回可好了,除了第一次装的时候我的miniport 可以运行以外,重启以后就不能运行了,device manager报错:“Windows cannot load the device driver for this hardware. The driver may be corrupted or missing (Code 39)”.而且非常奇怪的是,我用windbg看到:重启之后,系统还是会调用我的miniport,而且工作良好,但不知道为什么 在系统提示发现新硬件之后,我的miniport就被停掉了,之后才出现了上面的code 39..... 有那位大虾见过如上问题???望指教~~ |
|
最新喜欢:Leopar... |
沙发#
发布于:2004-06-22 12:04
就算是legacy的ParameterPnPInterface好像也是要填的。其次,你的光驱是虚拟的,你就没法支持pnp,除非你自己实现一个bus driver来骗pnp manager.
你是不是在2003下面开发? |
|
板凳#
发布于:2004-06-22 17:29
多谢楼上回复。
我是在xp下开发的, 不知道你说的实现一个bus driver是什么意思?miniport只是和scsi port driver 通信,那你的意思是写一个port driver么? 另外,关于虚拟光驱,我本来以为daemon tools就是用写一个miniport来实现的,但用devcon查了之后发现deamon tools竟然是在pci bus 上(pci\daemon\0000)所以我想,deamon tools的虚拟光驱的实现,应该不仅仅是一个miniport 这么简单把? 莫非她也是自己实现了一个port driver?? 忘高人指点~~ |
|
地板#
发布于:2004-06-23 09:26
daemon 是使用miniport来实现的,或许你看的哪个版本不一样,做了修改吧
|
|
|
地下室#
发布于:2004-06-23 11:14
哦,xp就对了,你的第二个问题在2000下面就不会出现,那是因为你的inf里面hwid的设置有问题,具体情况你可以看http://support.microsoft.com/default.aspx?scid=kb;en-us;279112&sd=tech
我不多说。 还有关于daemon 的问题,我不知道你的是什么版本,我这里是3。44它不光实现了一个miniport还有一个bus driver.我的意思是说,你要是想要支持pnp,必须要有这个bus,告诉pnp manager,有一个设备 [编辑 - 6/23/04 by terrychen] |
|
5楼#
发布于:2004-06-23 17:23
多谢回复
楼上给出的网址我回头去看看。 现在,我找了个折衷的解决办法,把我的miniport 不用inf安装,直接写了一段代码用service control manager加载成一个boot时候启动的service, 现在除了系统要重启两回以外,其他还算正常~ (这就是我在另外一个帖子里问用inf装驱动和把驱动装成service的区别的原因) 其实,对于用miniport来实现虚拟光驱的方法,我知道实际上ms是不支持的,而且这样的实现方法会有一些问题,并且不稳定,我在其他一些新闻祖上看到不少人说,最彻底的解决方法是自己写一个scsi port driver,所以我想deamon tools 是不是也是用了自己的scsi port driver呢? 楼上说的写一个bus driver 和 写一个scsi port driver说的是不是一回事?如果不是,能大概说说怎么写个bus driver?什么bus的driver? 多谢~~ |
|
6楼#
发布于:2004-06-24 11:35
我也遇到这方面的困惑,关注!
|
|
7楼#
发布于:2004-06-24 15:26
FredLiu,我有个问题,你为什么要让你的virtual device 一定支持pnp呢?你可以设成isa可以是legacy的阿?这个对你的device有什么影响呢?
我的意思就是说,如果你需要pnp支持的话,就一定需要一个BUS DRIVER.port driver 和pnp没有关系的 |
|
8楼#
发布于:2004-06-25 23:30
多谢回复~
terrychen, 再另一个帖子里看到前一阵你正在搞这个,不知道现在情况如何?performance 上去了么?怎么解决的? 我现在解决了安装的问题,就是把我的miniport安装成一个service,(用service control manager, 不用inf文件来安装,虽然我不知道这两者有什么本质上的区别) 我想支持pnp的原因是,如果是legacy的miniport,似乎就会让系统没有办法standby~~, (不支持pnp就肯定不能standby 巴?) 另外,既然实现bus driver 和 port driver 没关系,那也就是说lu0老大实现的那个虚拟磁盘的方法,和storagecraft上面maxim的那个不一样? (因为lu0好像是用个bus driver,而storagecraft上面那个则肯定是port driver) 多谢指教~~ |
|
9楼#
发布于:2007-01-01 18:36
FredLiu
请问你的第一个问题是怎么解决的,我也碰到了同样的问题 |
|
|