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

多谢
hangzhoustayer
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2006-06-19
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-12-05 13:21
自己写是什么意思,自己写scsi 的miniport不使用
hwInitData.HwInitialize
hwInitData.HwStartIo
hwInitData.HwFindAdapter
这套吗,这样要实现scsi是不是很难,有相应的例子可以参考吗?
谢谢
hangzhoustayer
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2006-06-19
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-12-07 11:23
要这样写难度很大啊,大侠们有没有发现有相关的例程可以参考的,谢谢了
hangzhoustayer
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2006-06-19
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-12-09 10:35
多谢SunMing.Cai大侠,我先看看你提到的东东
hangzhoustayer
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2006-06-19
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-01-10 21:53
SunMing.Cai我参考你的意见看了driverstudio生成的代码和你提供的scsiport程序(2000源代码析出的scsiport是一样的),发现driverstudio里面不知道运行在哪一层?port层还是miniport层
它里面多出来的东西无非是IRP_MJ_INTERNAL_DEVICE_CONTROL,在此I处理函数中就是scsi的srb但是我在自己的程序里面仿照它加了一个IRP_MJ_INTERNAL_DEVICE_CONTROL的处理,却发现不起作用,驱动不会进入到IRP_MJ_INTERNAL_DEVICE_CONTROL的处理函数中

scsiport程序也有一些没有想通的问题:如果我在ScsiPortDispatchScsi程序中直接处理srb,然后调用tdi跟远程通信不知道可不可行,这样就没有了miniport层,据我所知scsi miniport层相当于bus,如果没有它系统还会辨认出通过这种办法做成的虚拟磁盘吗?
请SunMing.Cai大侠指教//bow
hangzhoustayer
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2006-06-19
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于: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,谢谢谢谢
hangzhoustayer
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2006-06-19
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-01-12 13:13
你有没有试过?我加过之后编译没问题,但是怎么运行不了的
hangzhoustayer
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2006-06-19
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于: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的实现啊,看起来很怪的。。。
hangzhoustayer
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2006-06-19
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-01-25 18:52
我指的是scsi port程序它看起来也不是正常的wdm程序的样子
在它的driverEntry里面只有,而ScsiPortInitialize不知道谁会调用它,而且它的参数里面也有跟写miniport一样需要的HW_INITIALIZATION_DATA,其他函数也不知道是怎么调用的。。
游客

返回顶部