FredLiu
驱动牛犊
驱动牛犊
  • 注册日期2004-01-07
  • 最后登录2004-07-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1928回复:9

如何将scsi miniport做成legacy 的,又如何将他做成pnp的呢?

楼主#
更多 发布于:2004-06-22 00:48
各位,
我有一个用来虚拟光驱用的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.....

有那位大虾见过如上问题???望指教~~

最新喜欢:

LeopardLeopar...
terrychen
驱动小牛
驱动小牛
  • 注册日期2002-04-15
  • 最后登录2014-03-13
  • 粉丝0
  • 关注0
  • 积分174分
  • 威望68点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-22 12:04
就算是legacy的ParameterPnPInterface好像也是要填的。其次,你的光驱是虚拟的,你就没法支持pnp,除非你自己实现一个bus driver来骗pnp manager.
你是不是在2003下面开发?
FredLiu
驱动牛犊
驱动牛犊
  • 注册日期2004-01-07
  • 最后登录2004-07-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于: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??

忘高人指点~~
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-06-23 09:26
daemon 是使用miniport来实现的,或许你看的哪个版本不一样,做了修改吧
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
terrychen
驱动小牛
驱动小牛
  • 注册日期2002-04-15
  • 最后登录2014-03-13
  • 粉丝0
  • 关注0
  • 积分174分
  • 威望68点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
地下室#
发布于: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]
FredLiu
驱动牛犊
驱动牛犊
  • 注册日期2004-01-07
  • 最后登录2004-07-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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?

多谢~~
kangzh
驱动小牛
驱动小牛
  • 注册日期2004-03-09
  • 最后登录2012-08-06
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望22点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-06-24 11:35
我也遇到这方面的困惑,关注!
terrychen
驱动小牛
驱动小牛
  • 注册日期2002-04-15
  • 最后登录2014-03-13
  • 粉丝0
  • 关注0
  • 积分174分
  • 威望68点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-06-24 15:26
FredLiu,我有个问题,你为什么要让你的virtual device 一定支持pnp呢?你可以设成isa可以是legacy的阿?这个对你的device有什么影响呢?
我的意思就是说,如果你需要pnp支持的话,就一定需要一个BUS DRIVER.port driver 和pnp没有关系的
FredLiu
驱动牛犊
驱动牛犊
  • 注册日期2004-01-07
  • 最后登录2004-07-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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)

多谢指教~~
redhatking
驱动牛犊
驱动牛犊
  • 注册日期2004-01-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望83点
  • 贡献值0点
  • 好评度56点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2007-01-01 18:36
FredLiu
请问你的第一个问题是怎么解决的,我也碰到了同样的问题
请各位多指教
游客

返回顶部