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

多谢
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-12-05 12:19
那你自己写就可以了,不使用scsi的库函数
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分
板凳#
发布于:2004-12-05 13:21
自己写是什么意思,自己写scsi 的miniport不使用
hwInitData.HwInitialize
hwInitData.HwStartIo
hwInitData.HwFindAdapter
这套吗,这样要实现scsi是不是很难,有相应的例子可以参考吗?
谢谢
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-12-06 12:00
自己写是什么意思,自己写scsi 的miniport不使用
hwInitData.HwInitialize
hwInitData.HwStartIo
hwInitData.HwFindAdapter
这套吗,这样要实现scsi是不是很难,有相应的例子可以参考吗?
谢谢

对就是那样
会者不难,难者不会
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
liuyan1
驱动老牛
驱动老牛
  • 注册日期2001-08-27
  • 最后登录2023-04-18
  • 粉丝0
  • 关注0
  • 积分1031分
  • 威望477点
  • 贡献值0点
  • 好评度187点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2004-12-06 22:58
答案是肯定的
Scsiminport driver 与scsiport driver 的关系
类似于
Disk/CDROM driver 与 Classpnp之间的关系。
楼上的客,楼下的客,听我老坎说明白,要苛屎有草纸,不要扯我的麦席子,要苛尿有夜壶,不要在床上划地图。
hangzhoustayer
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2006-06-19
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-12-07 11:23
要这样写难度很大啊,大侠们有没有发现有相关的例程可以参考的,谢谢了
SunMing.Cai
驱动牛犊
驱动牛犊
  • 注册日期2002-11-25
  • 最后登录2008-01-10
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-12-09 09:39
hangzhoustayer的问题我也有想过。
我在这里贴上一个 freeos 的scsiport.c 源码。
它来自http://cvs.cosoft.org.cn/cgi-bin/viewcvs.cgi/fileshare/FreeWin/drivers/storage/scsiport/scsiport.c?rev=HEAD
是一个完整的仿 winnt 的 kernel project.
其driver的架构和原理都跟wdm相仿。

scsi miniport是一个bus类驱动,但事实上,在使用hwInitData.HwInitialize之类的来封装时,scsiport.sys封装了大量的操作。
你用 driver studio 3.0 驱动向导, 建一个 scsi miniport(C框架),再比较一下就知道了.
附件名称/大小 下载次数 最后更新
2004-12-09_scsiport.c (68KB)  183
梦想驱动人生 ------------------------ MSN:saleonnet@hotmail.com ICQ:175745619 OQ:14892627
hangzhoustayer
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2006-06-19
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-12-09 10:35
多谢SunMing.Cai大侠,我先看看你提到的东东
hangzhoustayer
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2006-06-19
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于: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
idbee
驱动牛犊
驱动牛犊
  • 注册日期2002-10-14
  • 最后登录2012-08-02
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望44点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-01-10 22:26
你的问题,我曾经想过,我是在实现一个iSCSI在windows端的initiator时提出的。经过我一段时间的思索,觉得不实现miniport是不可能实现iSCSI的。因为只有当os发现自己有一个scsi adapter的时候,才会去inquiry这个bus上有没有挂接disk,所以必须在miniport中建立TDI连接。微软自己就是这样做的。
本人熟悉WindowsDDK, Display Driver,VGA BIOS, System BIOS的开发。软件的加密和解密。软件狗的Crack等等。熟练掌握汇编语言,C,C++语言。联系方式:HugoTian@viatech.com.cn
hangzhoustayer
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2006-06-19
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于: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,谢谢谢谢
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
11楼#
发布于: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分
12楼#
发布于:2005-01-12 13:13
你有没有试过?我加过之后编译没问题,但是怎么运行不了的
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
13楼#
发布于: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] ========================================================
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
14楼#
发布于: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分
15楼#
发布于: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分
16楼#
发布于:2005-01-19 21:13
另外我在替换了DriverUnload的时候,手工卸载设备没有问题,
但是重启以后,操作系统会自己发现硬件,然后把我的驱动unload,
发生蓝屏,并且蓝屏发生在我的MiniportDriverUnload和PortDriverUnload都返回以后。

恳请各位大虾指点。
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
17楼#
发布于: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分
18楼#
发布于:2005-01-20 20:22
[quote]没有人研究nt4-source包里面的scsiport.sys的源码吗,

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


workitem [/quote]

workitem只能工作在系统线程上下文中,不符合要求啊
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
19楼#
发布于: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] ========================================================
上一页
游客

返回顶部