阅读:2062回复:17
如何像daemon一样动态的增减盘的数量?
请大家多多帮忙! ;)
|
|
沙发#
发布于:2003-08-04 14:37
你这个问题太大了,不好回答呀!
看看Filedisk的源码吧 |
|
|
板凳#
发布于:2003-08-04 15:12
你这个问题太大了,不好回答呀! daemon用的和FileDisk不一样,daemon用的是SCSI miniport驱动实现的。不知道如何动态加载SCSI miniport驱动,然后动态增减盘的数量。有谁知道啊?! :o |
|
地板#
发布于:2003-08-04 15:36
[quote]你这个问题太大了,不好回答呀! daemon用的和FileDisk不一样,daemon用的是SCSI miniport驱动实现的。不知道如何动态加载SCSI miniport驱动,然后动态增减盘的数量。有谁知道啊?! :o [/quote] 修改LUN 的数目就可以做到动态了 |
|
|
地下室#
发布于:2003-08-04 15:57
[quote][quote]你这个问题太大了,不好回答呀! daemon用的和FileDisk不一样,daemon用的是SCSI miniport驱动实现的。不知道如何动态加载SCSI miniport驱动,然后动态增减盘的数量。有谁知道啊?! :o [/quote] 修改LUN 的数目就可以做到动态了 [/quote] 是不是在inquiry指令中返回不同的lun值?如果是的话,如何然系统再次向驱动发查询指令呢? :) |
|
5楼#
发布于:2003-08-06 13:24
自己顶 :(
|
|
6楼#
发布于:2003-08-06 18:40
自己顶 :(:D :D :D 帮你顶! |
|
|
7楼#
发布于:2003-08-07 09:39
[quote]自己顶 :(:D :D :D 帮你顶! [/quote] 老大,你怎么不回答我问题,光顶有什么用? :o :( |
|
8楼#
发布于:2003-08-08 12:50
[quote][quote][quote]你这个问题太大了,不好回答呀! 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! |
|
|
9楼#
发布于:2003-08-08 15:47
[quote][quote][quote][quote]你这个问题太大了,不好回答呀! 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] 多谢回答,等我去试验一下,如果成功了会把经验和大家交流一下! |
|
10楼#
发布于:2003-08-16 22:22
或者试试:CM_ReenumerateDevNodeEx
偶在Daemon的代码里面找到的 :D |
|
|
11楼#
发布于:2003-08-18 10:05
或者试试:CM_ReenumerateDevNodeEx 谢了老大 :cool: 现在还有一个问题,用户态程序如何给miniport driver发送控制码呢?使用CreateFile获得设备句柄的时候FileName应该是什么?为什么系统总是提示我说路径未找到? :o |
|
12楼#
发布于:2003-08-18 11:56
[quote]或者试试:CM_ReenumerateDevNodeEx 谢了老大 :cool: 现在还有一个问题,用户态程序如何给miniport driver发送控制码呢?使用CreateFile获得设备句柄的时候FileName应该是什么?为什么系统总是提示我说路径未找到? :o [/quote] SCSI miniport driver 不能直接打开, 在WinNT/2K/XP下可以打开相应的 SCSI0, SCSI1, ..., 一般主板上的IDE端口是SCSI0, SCSI1, 你的可能是SCSI2, 需要自己确认一下。 |
|
|
13楼#
发布于:2003-08-18 12:13
[quote][quote]或者试试:CM_ReenumerateDevNodeEx 谢了老大 :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是什么呢? :) |
|
14楼#
发布于:2003-08-18 12:22
[quote][quote][quote]或者试试:CM_ReenumerateDevNodeEx 谢了老大 :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看一下吧! |
|
|
15楼#
发布于:2003-08-18 12:41
[quote][quote][quote][quote]或者试试:CM_ReenumerateDevNodeEx 谢了老大 :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] 多谢多谢!你真是乐于助人啊,有机会多多交流 ;) |
|
16楼#
发布于:2003-08-18 13:56
[quote]或者试试:CM_ReenumerateDevNodeEx 谢了老大 :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下面就没有这么方便了。 |
|
|
17楼#
发布于:2003-08-18 14:16
[quote][quote]或者试试:CM_ReenumerateDevNodeEx 谢了老大 :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] 版主的回答很清晰,在这儿谢过了! |
|