阅读:7029回复:28
请问在scsi miniport驱动的DriverEntry函数中可不可以。。
请问在scsi miniport驱动的DriverEntry函数中可不可以设置这些
DriverObject->DriverUnload = DriverUnload; DriverObject->DriverExtension->AddDevice = AddDevice; DriverObject->MajorFunction[IRP_MJ_POWER] = DispatchPower; DriverObject->MajorFunction[IRP_MJ_PNP] = DispatchPnp; 多谢 |
|
沙发#
发布于:2008-06-03 17:16
ac97eric 等已经实现了TDI+scsi miniport的前辈能否联系本人,本人想请教一些问题,因本人通过TDI挂载后的scsi miniport格式化时便出错,这个问题困扰了我很久了。本人邮箱 fjnu_jxd_111@tom.com已经贴上。
|
|
板凳#
发布于:2008-06-03 17:10
本人实现了TDI 和scsi miniport驱动,但是挂载时,scsi miniport 驱动格式化便会出错,请高人指点,本人邮箱 fjnu_jxd_111@tom.com
|
|
地板#
发布于:2005-07-14 20:48
本人也在作windows下的initiator,也是采用的SCSI MiniPort + Tdi的框架,目前两部分都已经分别实现,目前碰到的问题的是:用户调用TDI Login Target,也就是说在计算机启动以后才能登陆目标器。然而我的SCSI MiniPort 是参考的Vdisk源代码,是一个Legend设备,计算机启动之后系统线程就开始工作。所以我需要一个用户和SCSI MiniPort 通信的方法,来通知SCSI MiniPort 已经登陆了Target,可以向Target发送数据了。目前还没有解决这个问题,请各位大虾指教!
|
|
地下室#
发布于:2005-01-25 18:52
我指的是scsi port程序它看起来也不是正常的wdm程序的样子
在它的driverEntry里面只有,而ScsiPortInitialize不知道谁会调用它,而且它的参数里面也有跟写miniport一样需要的HW_INITIALIZATION_DATA,其他函数也不知道是怎么调用的。。 |
|
5楼#
发布于:2005-01-24 20:00
scsi port的实现也不是标准wdm的实现啊,看起来很怪的。。。 什么意思? |
|
|
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的实现啊,看起来很怪的。。。
|
|
7楼#
发布于:2005-01-22 17:05
SCSI miniport的设计其实是为了广泛的硬件支持,这也就是DDK公开这部分设计的原因,传给适配器的东西是IRP中的SRB中的16字节CDB,也就是Disk Class Driver里做好的,自己写一个直接操作板卡也可以,呵呵
|
|
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 |
|
|
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的毕业设计倒底想干什么?这里不应该搞那么复杂。
|
|
10楼#
发布于:2005-01-21 13:15
[quote][quote]没有人研究nt4-source包里面的scsiport.sys的源码吗, workitem [/quote] workitem只能工作在系统线程上下文中,不符合要求啊 [/quote] but system thread works at PASSIVE_LEVEL. don't you want this? |
|
|
11楼#
发布于:2005-01-20 20:22
[quote]没有人研究nt4-source包里面的scsiport.sys的源码吗, workitem [/quote] workitem只能工作在系统线程上下文中,不符合要求啊 |
|
12楼#
发布于:2005-01-19 21:18
[quote]没有人研究nt4-source包里面的scsiport.sys的源码吗, workitem [/quote] thx,有时间试一试, |
|
13楼#
发布于:2005-01-19 21:13
另外我在替换了DriverUnload的时候,手工卸载设备没有问题,
但是重启以后,操作系统会自己发现硬件,然后把我的驱动unload, 发生蓝屏,并且蓝屏发生在我的MiniportDriverUnload和PortDriverUnload都返回以后。 恳请各位大虾指点。 |
|
14楼#
发布于:2005-01-19 21:13
没有人研究nt4-source包里面的scsiport.sys的源码吗, workitem |
|
|
15楼#
发布于:2005-01-19 21:10
没有人研究nt4-source包里面的scsiport.sys的源码吗,
很想把srb修改成可以在passive_level处理,苦于能力和时间不够 |
|
16楼#
发布于:2005-01-19 20:23
scsi miniport driver里面没地方加这个。
想做scsi port driver,要考虑很多东西,想做得好,也不是那么容易的 |
|
|
17楼#
发布于:2005-01-12 13:13
你有没有试过?我加过之后编译没问题,但是怎么运行不了的
|
|
18楼#
发布于:2005-01-11 23:07
那就是说 这个当然可以加 |
|
|
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,谢谢谢谢 |
|
上一页
下一页