hangzhoustayer
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2006-06-19
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:6771回复:28

请问在scsi miniport驱动的DriverEntry函数中可不可以。。

楼主#
更多 发布于:2004-12-04 11:25
请问在scsi miniport驱动的DriverEntry函数中可不可以设置这些
DriverObject->DriverUnload = DriverUnload;
DriverObject->DriverExtension->AddDevice = AddDevice;

DriverObject->MajorFunction[IRP_MJ_POWER] = DispatchPower;
DriverObject->MajorFunction[IRP_MJ_PNP] = DispatchPnp;

多谢
dadalan
驱动牛犊
驱动牛犊
  • 注册日期2007-01-11
  • 最后登录2008-11-03
  • 粉丝1
  • 关注0
  • 积分1分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-06-03 17:16
ac97eric 等已经实现了TDI+scsi miniport的前辈能否联系本人,本人想请教一些问题,因本人通过TDI挂载后的scsi miniport格式化时便出错,这个问题困扰了我很久了。本人邮箱    fjnu_jxd_111@tom.com已经贴上。
dadalan
驱动牛犊
驱动牛犊
  • 注册日期2007-01-11
  • 最后登录2008-11-03
  • 粉丝1
  • 关注0
  • 积分1分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-06-03 17:10
本人实现了TDI 和scsi miniport驱动,但是挂载时,scsi  miniport 驱动格式化便会出错,请高人指点,本人邮箱     fjnu_jxd_111@tom.com
ac97eric
驱动牛犊
驱动牛犊
  • 注册日期2004-11-30
  • 最后登录2006-03-30
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-07-14 20:48
本人也在作windows下的initiator,也是采用的SCSI MiniPort + Tdi的框架,目前两部分都已经分别实现,目前碰到的问题的是:用户调用TDI Login Target,也就是说在计算机启动以后才能登陆目标器。然而我的SCSI MiniPort 是参考的Vdisk源代码,是一个Legend设备,计算机启动之后系统线程就开始工作。所以我需要一个用户和SCSI MiniPort 通信的方法,来通知SCSI MiniPort 已经登陆了Target,可以向Target发送数据了。目前还没有解决这个问题,请各位大虾指教!
hangzhoustayer
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2006-06-19
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-01-25 18:52
我指的是scsi port程序它看起来也不是正常的wdm程序的样子
在它的driverEntry里面只有,而ScsiPortInitialize不知道谁会调用它,而且它的参数里面也有跟写miniport一样需要的HW_INITIALIZATION_DATA,其他函数也不知道是怎么调用的。。
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-01-24 20:00
scsi port的实现也不是标准wdm的实现啊,看起来很怪的。。。


什么意思?
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
hangzhoustayer
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2006-06-19
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-01-24 15:30
多谢各位的关注。我的任务就是写一个initiator端,但是我想如果在initiator端把target端ip地址定死只能用一个就显得不太合理。我想initiator可以建立到多个target的连接,当需要建立新连接时,驱动中先建一个虚拟设备,通过应用程序和驱动通信IoControl的方法把需要的结构以及TDI都建好,当不需要时就销毁这个设备。这样的话原来scsi miniport的结构就存在我上面问的这个问题了。simba说直接写过滤驱动,但其实这样通过在SCSI miniport层截获SCSI srb,再通过TDI传送出去的方法就是过滤的办法把,我不明白你指的中间层过滤驱动是什么概念。SunMing.Cai的意思是自己实现SCSI port和miniport吗?那么用标准的 wdm dispatch 实现同样有跟这里类似的问题,scsi port的实现也不是标准wdm的实现啊,看起来很怪的。。。
simba
驱动牛犊
驱动牛犊
  • 注册日期2002-01-28
  • 最后登录2009-02-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-01-22 17:05
SCSI miniport的设计其实是为了广泛的硬件支持,这也就是DDK公开这部分设计的原因,传给适配器的东西是IRP中的SRB中的16字节CDB,也就是Disk Class Driver里做好的,自己写一个直接操作板卡也可以,呵呵
SunMing.Cai
驱动牛犊
驱动牛犊
  • 注册日期2002-11-25
  • 最后登录2008-01-10
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-01-22 11:59
其实没有说得这么复杂。
不使用 scsiport.sys(hwInitialize) 并不表示不实现 miniport port。scsiport是一个bus 封装好的驱动。
而为什么要提供这样的封装 方法,可能是从nt4遗留下来的。是为了方便跟scsi adapter接口吧(这样开发 scsi 驱动就只需要将srb传给scsi adapter 就可以了)。
但做虚拟的scsi initialitor(像iscsi),没有必要遵守这个。所有的 scsiport 操作,都可以用标准的 wdm dispatch 实现。
像 scsi inquery 其实就是  pnp_query  relation=bus
梦想驱动人生 ------------------------ MSN:saleonnet@hotmail.com ICQ:175745619 OQ:14892627
simba
驱动牛犊
驱动牛犊
  • 注册日期2002-01-28
  • 最后登录2009-02-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-01-22 00:20
实际上主要的问题还不是运行级别的问题,rayyang2000已经说了系统线程,这个完全可以搞定,hangzhoustayer就算是用上述方法把TDI放进去做了idbee说的iSCSI initiator,也存在报告SRB完成的麻烦,异步IO完成消息丢哪里?正常的适配器有ISR处理,这里如果不动手脚就得靠时钟,性能将很差,如IBM的试验Windows iSCSI initiator,M$自己的自然方法上要好多了,可惜DDK是不公开Port的Source的,因此就要SunMing.Cai提供的那个代码或tooflat说的NT4 Source,然后自己动手写Port,但与其这样写一套,还不如直接写一个KMD或Filter,话说回来具体还要看hangzhoustayer的毕业设计倒底想干什么?这里不应该搞那么复杂。
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-01-21 13:15
[quote][quote]没有人研究nt4-source包里面的scsiport.sys的源码吗,

很想把srb修改成可以在passive_level处理,苦于能力和时间不够


workitem [/quote]

workitem只能工作在系统线程上下文中,不符合要求啊 [/quote]

but system thread works at PASSIVE_LEVEL. don't you want this?
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-01-20 20:22
[quote]没有人研究nt4-source包里面的scsiport.sys的源码吗,

很想把srb修改成可以在passive_level处理,苦于能力和时间不够


workitem [/quote]

workitem只能工作在系统线程上下文中,不符合要求啊
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-01-19 21:18
[quote]没有人研究nt4-source包里面的scsiport.sys的源码吗,

很想把srb修改成可以在passive_level处理,苦于能力和时间不够


workitem [/quote]


thx,有时间试一试,
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2005-01-19 21:13
另外我在替换了DriverUnload的时候,手工卸载设备没有问题,
但是重启以后,操作系统会自己发现硬件,然后把我的驱动unload,
发生蓝屏,并且蓝屏发生在我的MiniportDriverUnload和PortDriverUnload都返回以后。

恳请各位大虾指点。
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2005-01-19 21:13
没有人研究nt4-source包里面的scsiport.sys的源码吗,

很想把srb修改成可以在passive_level处理,苦于能力和时间不够


workitem
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2005-01-19 21:10
没有人研究nt4-source包里面的scsiport.sys的源码吗,

很想把srb修改成可以在passive_level处理,苦于能力和时间不够
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2005-01-19 20:23
scsi miniport driver里面没地方加这个。

想做scsi port driver,要考虑很多东西,想做得好,也不是那么容易的
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
hangzhoustayer
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2006-06-19
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2005-01-12 13:13
你有没有试过?我加过之后编译没问题,但是怎么运行不了的
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2005-01-11 23:07
那就是说
DriverObject->DriverUnload = DriverUnload;
DriverObject->DriverExtension->AddDevice = AddDevice;

DriverObject->MajorFunction[IRP_MJ_POWER] = DispatchPower;
DriverObject->MajorFunction[IRP_MJ_PNP] = DispatchPnp;
这些都加不了了?
兄弟你这个initiator实现得怎么样,可不可以把代码发给我学习学习,我毕设也要做这个东西,问题多多,我的邮箱是,hangzhoustayer@163.com,谢谢谢谢

这个当然可以加
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
hangzhoustayer
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2006-06-19
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2005-01-11 18:23
那就是说
DriverObject->DriverUnload = DriverUnload;
DriverObject->DriverExtension->AddDevice = AddDevice;

DriverObject->MajorFunction[IRP_MJ_POWER] = DispatchPower;
DriverObject->MajorFunction[IRP_MJ_PNP] = DispatchPnp;
这些都加不了了?
兄弟你这个initiator实现得怎么样,可不可以把代码发给我学习学习,我毕设也要做这个东西,问题多多,我的邮箱是,hangzhoustayer@163.com,谢谢谢谢
上一页
游客

返回顶部