flyonearth
驱动中牛
驱动中牛
  • 注册日期2002-12-25
  • 最后登录2009-07-01
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望30点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2063回复:17

如何像daemon一样动态的增减盘的数量?

楼主#
更多 发布于:2003-08-04 11:01
请大家多多帮忙! ;)
caosuricheng
驱动中牛
驱动中牛
  • 注册日期2002-04-16
  • 最后登录2004-09-04
  • 粉丝0
  • 关注0
  • 积分-10分
  • 威望-1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-08-04 14:37
你这个问题太大了,不好回答呀!
看看Filedisk的源码吧
我是草肃日成 有人认识我吗?
flyonearth
驱动中牛
驱动中牛
  • 注册日期2002-12-25
  • 最后登录2009-07-01
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望30点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-08-04 15:12
你这个问题太大了,不好回答呀!
看看Filedisk的源码吧


daemon用的和FileDisk不一样,daemon用的是SCSI miniport驱动实现的。不知道如何动态加载SCSI miniport驱动,然后动态增减盘的数量。有谁知道啊?! :o
liuyan1
驱动老牛
驱动老牛
  • 注册日期2001-08-27
  • 最后登录2023-04-18
  • 粉丝0
  • 关注0
  • 积分1031分
  • 威望477点
  • 贡献值0点
  • 好评度187点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2003-08-04 15:36
[quote]你这个问题太大了,不好回答呀!
看看Filedisk的源码吧


daemon用的和FileDisk不一样,daemon用的是SCSI miniport驱动实现的。不知道如何动态加载SCSI miniport驱动,然后动态增减盘的数量。有谁知道啊?! :o [/quote]
修改LUN 的数目就可以做到动态了
楼上的客,楼下的客,听我老坎说明白,要苛屎有草纸,不要扯我的麦席子,要苛尿有夜壶,不要在床上划地图。
flyonearth
驱动中牛
驱动中牛
  • 注册日期2002-12-25
  • 最后登录2009-07-01
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望30点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-08-04 15:57
[quote][quote]你这个问题太大了,不好回答呀!
看看Filedisk的源码吧


daemon用的和FileDisk不一样,daemon用的是SCSI miniport驱动实现的。不知道如何动态加载SCSI miniport驱动,然后动态增减盘的数量。有谁知道啊?! :o [/quote]
修改LUN 的数目就可以做到动态了 [/quote]

是不是在inquiry指令中返回不同的lun值?如果是的话,如何然系统再次向驱动发查询指令呢? :)
flyonearth
驱动中牛
驱动中牛
  • 注册日期2002-12-25
  • 最后登录2009-07-01
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望30点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-08-06 13:24
自己顶 :(
liuyan1
驱动老牛
驱动老牛
  • 注册日期2001-08-27
  • 最后登录2023-04-18
  • 粉丝0
  • 关注0
  • 积分1031分
  • 威望477点
  • 贡献值0点
  • 好评度187点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2003-08-06 18:40
自己顶 :(
:D :D :D
帮你顶!
楼上的客,楼下的客,听我老坎说明白,要苛屎有草纸,不要扯我的麦席子,要苛尿有夜壶,不要在床上划地图。
flyonearth
驱动中牛
驱动中牛
  • 注册日期2002-12-25
  • 最后登录2009-07-01
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望30点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-08-07 09:39
[quote]自己顶 :(
:D :D :D
帮你顶! [/quote]

老大,你怎么不回答我问题,光顶有什么用? :o :(
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
8楼#
发布于:2003-08-08 12:50
[quote][quote][quote]你这个问题太大了,不好回答呀!
看看Filedisk的源码吧


daemon用的和FileDisk不一样,daemon用的是SCSI miniport驱动实现的。不知道如何动态加载SCSI miniport驱动,然后动态增减盘的数量。有谁知道啊?! :o [/quote]
修改LUN 的数目就可以做到动态了 [/quote]

是不是在inquiry指令中返回不同的lun值?如果是的话,如何然系统再次向驱动发查询指令呢? :) [/quote]

Scsi miniport driver 可以发送一个ScsiPortNotification
BusChangeDetected要求系统重新枚举某条SCSI总线(Path)上面的设备,不过好象只适用于Win2K/XP。

Good luck!
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
flyonearth
驱动中牛
驱动中牛
  • 注册日期2002-12-25
  • 最后登录2009-07-01
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望30点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-08-08 15:47
[quote][quote][quote][quote]你这个问题太大了,不好回答呀!
看看Filedisk的源码吧


daemon用的和FileDisk不一样,daemon用的是SCSI miniport驱动实现的。不知道如何动态加载SCSI miniport驱动,然后动态增减盘的数量。有谁知道啊?! :o [/quote]
修改LUN 的数目就可以做到动态了 [/quote]

是不是在inquiry指令中返回不同的lun值?如果是的话,如何然系统再次向驱动发查询指令呢? :) [/quote]

Scsi miniport driver 可以发送一个ScsiPortNotification
BusChangeDetected要求系统重新枚举某条SCSI总线(Path)上面的设备,不过好象只适用于Win2K/XP。

Good luck! [/quote]

多谢回答,等我去试验一下,如果成功了会把经验和大家交流一下!
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-08-16 22:22
或者试试:CM_ReenumerateDevNodeEx
偶在Daemon的代码里面找到的  :D
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
flyonearth
驱动中牛
驱动中牛
  • 注册日期2002-12-25
  • 最后登录2009-07-01
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望30点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-08-18 10:05
或者试试:CM_ReenumerateDevNodeEx
偶在Daemon的代码里面找到的  :D


谢了老大 :cool:
现在还有一个问题,用户态程序如何给miniport driver发送控制码呢?使用CreateFile获得设备句柄的时候FileName应该是什么?为什么系统总是提示我说路径未找到? :o
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
12楼#
发布于:2003-08-18 11:56
[quote]或者试试:CM_ReenumerateDevNodeEx
偶在Daemon的代码里面找到的  :D


谢了老大 :cool:
现在还有一个问题,用户态程序如何给miniport driver发送控制码呢?使用CreateFile获得设备句柄的时候FileName应该是什么?为什么系统总是提示我说路径未找到? :o [/quote]

SCSI miniport driver 不能直接打开, 在WinNT/2K/XP下可以打开相应的 SCSI0, SCSI1, ..., 一般主板上的IDE端口是SCSI0, SCSI1, 你的可能是SCSI2, 需要自己确认一下。
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
flyonearth
驱动中牛
驱动中牛
  • 注册日期2002-12-25
  • 最后登录2009-07-01
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望30点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-08-18 12:13
[quote][quote]或者试试:CM_ReenumerateDevNodeEx
偶在Daemon的代码里面找到的  :D


谢了老大 :cool:
现在还有一个问题,用户态程序如何给miniport driver发送控制码呢?使用CreateFile获得设备句柄的时候FileName应该是什么?为什么系统总是提示我说路径未找到? :o [/quote]

SCSI miniport driver 不能直接打开, 在WinNT/2K/XP下可以打开相应的 SCSI0, SCSI1, ..., 一般主板上的IDE端口是SCSI0, SCSI1, 你的可能是SCSI2, 需要自己确认一下。 [/quote]

多谢你的回答!
那miniport driver能否注册设备接口呢?如果可以的话,physical driver object是什么呢? :)
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
14楼#
发布于:2003-08-18 12:22
[quote][quote][quote]或者试试:CM_ReenumerateDevNodeEx
偶在Daemon的代码里面找到的  :D


谢了老大 :cool:
现在还有一个问题,用户态程序如何给miniport driver发送控制码呢?使用CreateFile获得设备句柄的时候FileName应该是什么?为什么系统总是提示我说路径未找到? :o [/quote]

SCSI miniport driver 不能直接打开, 在WinNT/2K/XP下可以打开相应的 SCSI0, SCSI1, ..., 一般主板上的IDE端口是SCSI0, SCSI1, 你的可能是SCSI2, 需要自己确认一下。 [/quote]

多谢你的回答!
那miniport driver能否注册设备接口呢?如果可以的话,physical driver object是什么呢? :) [/quote]

由系统自动注册, 好像是SCSIPORT0,... 用Winobj看一下吧!
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
flyonearth
驱动中牛
驱动中牛
  • 注册日期2002-12-25
  • 最后登录2009-07-01
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望30点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-08-18 12:41
[quote][quote][quote][quote]或者试试:CM_ReenumerateDevNodeEx
偶在Daemon的代码里面找到的  :D


谢了老大 :cool:
现在还有一个问题,用户态程序如何给miniport driver发送控制码呢?使用CreateFile获得设备句柄的时候FileName应该是什么?为什么系统总是提示我说路径未找到? :o [/quote]

SCSI miniport driver 不能直接打开, 在WinNT/2K/XP下可以打开相应的 SCSI0, SCSI1, ..., 一般主板上的IDE端口是SCSI0, SCSI1, 你的可能是SCSI2, 需要自己确认一下。 [/quote]

多谢你的回答!
那miniport driver能否注册设备接口呢?如果可以的话,physical driver object是什么呢? :) [/quote]

由系统自动注册, 好像是SCSIPORT0,... 用Winobj看一下吧! [/quote]

多谢多谢!你真是乐于助人啊,有机会多多交流 ;)
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-08-18 13:56
[quote]或者试试:CM_ReenumerateDevNodeEx
偶在Daemon的代码里面找到的  :D


谢了老大 :cool:
现在还有一个问题,用户态程序如何给miniport driver发送控制码呢?使用CreateFile获得设备句柄的时候FileName应该是什么?为什么系统总是提示我说路径未找到? :o [/quote]

这其实是2个问题。一个是CreateFile的Path,另外一个是如何送DeviceIoControl。
第一个问题,如果用DeviceTree在2k/xp下仔细看过,就会看到每个scsi adapter都最少有一个do,代表那个adapter,对应的Symbolic Link Name是scsix。而这个adapter连接的其他设备,都另外有一个do来代表,cdb都是发到这些do上,他们对应的Symbolic Link Name就是scsiportx。想要和谁通讯,就调用各自name。
第二个,nt下有SRB_FUNCTION_IO_CONTROL,ddk里面的sample都有例子,它的sig可以判断你打开的scsix是不是你的driver。而9x下面就没有这么方便了。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
flyonearth
驱动中牛
驱动中牛
  • 注册日期2002-12-25
  • 最后登录2009-07-01
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望30点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2003-08-18 14:16
[quote][quote]或者试试:CM_ReenumerateDevNodeEx
偶在Daemon的代码里面找到的  :D


谢了老大 :cool:
现在还有一个问题,用户态程序如何给miniport driver发送控制码呢?使用CreateFile获得设备句柄的时候FileName应该是什么?为什么系统总是提示我说路径未找到? :o [/quote]

这其实是2个问题。一个是CreateFile的Path,另外一个是如何送DeviceIoControl。
第一个问题,如果用DeviceTree在2k/xp下仔细看过,就会看到每个scsi adapter都最少有一个do,代表那个adapter,对应的Symbolic Link Name是scsix。而这个adapter连接的其他设备,都另外有一个do来代表,cdb都是发到这些do上,他们对应的Symbolic Link Name就是scsiportx。想要和谁通讯,就调用各自name。
第二个,nt下有SRB_FUNCTION_IO_CONTROL,ddk里面的sample都有例子,它的sig可以判断你打开的scsix是不是你的driver。而9x下面就没有这么方便了。 [/quote]

版主的回答很清晰,在这儿谢过了!
游客

返回顶部