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

请教scsi提供的功能跟具体命令序列的对应关系

楼主#
更多 发布于:2004-09-04 19:40
请问哪里有格式化磁盘,读,写,创建一个文件这些上层功能跟下层scsi命令的对应关系?

最新喜欢:

wdy9927wdy992...
liuyan1
驱动老牛
驱动老牛
  • 注册日期2001-08-27
  • 最后登录2023-04-18
  • 粉丝0
  • 关注0
  • 积分1031分
  • 威望477点
  • 贡献值0点
  • 好评度187点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2004-09-04 23:20
SCSI 标准中有的。
楼上的客,楼下的客,听我老坎说明白,要苛屎有草纸,不要扯我的麦席子,要苛尿有夜壶,不要在床上划地图。
hangzhoustayer
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2006-06-19
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-09-04 23:38
谢谢。
曾经下了一个scsi2,但是貌似没看到,也可能是有,不过里面内容太多。
哪里有简明的,看起来一目了然的。。
terrychen
驱动小牛
驱动小牛
  • 注册日期2002-04-15
  • 最后登录2014-03-13
  • 粉丝0
  • 关注0
  • 积分174分
  • 威望68点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-09-06 17:50
读写,就是write5,read5,write10,read10什么的阿,格式化没有研究过
cidentifier
驱动牛犊
驱动牛犊
  • 注册日期2003-11-13
  • 最后登录2009-09-20
  • 粉丝1
  • 关注0
  • 积分1分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-09-06 18:06
读写,就是write10,read10,没有接收过write6和read6。
control it, or forget it
hangzhoustayer
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2006-06-19
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-09-06 20:45
其实我关注这个的原因是我想为用户分配盘的一部分,不想让用户耗去整个盘,那么当用户写文件的时候我想不出办法判断用户是不是超出他该使用的范围,因为在scsi miniport看来只是一些SRB跟文件对应不起来,如果实际硬件没有这么大的话,写出错会返回失败,而现在写磁盘的时候如果还在整个盘的大小范围之内,则不会出现写错误


还有一个问题就是如果我在服务器端不是以一个文件映射成客户端的一个盘,而是用一个目录映射成用户的一个盘,那么当往这个虚拟盘中写文件时怎么对应到写实际目录中的文件?
求教大侠了,会另外开贴给分。
tiamo
VIP专家组
VIP专家组
  • 注册日期2002-02-26
  • 最后登录2018-01-09
  • 粉丝17
  • 关注4
  • 积分50分
  • 威望142点
  • 贡献值1点
  • 好评度40点
  • 原创分2分
  • 专家分15分
  • 原创先锋奖
  • 社区居民
6楼#
发布于:2004-09-07 05:14
这个问题......
如果这样的话....我想scsi miniport并不是你需要的解决方案..

首先你要明白scsi miniport都是干什么用的...他运行在什么样子的环境里面...他操作的是什么对象...他面对的输入跟输出是什么..

scsi driver他是一个storage的驱动..在这个层面上...已经没有文件..文件夹这种概念的存在了..也没有所谓的分区这种概念存在...你所面对的只是一个纯粹的存储空间....究竟这个空间里面是什么..并不是你该去关心的....这是其一....

其二...你所已经关心的是..怎么去标记这个空间..怎么去寻地这个空间...怎么去读..怎么去写这个空间....至于怎么去解释这个空间里面的内容..那是file system的driver的工作...并不是storage driver的工作....

file system的driver需要你完成读取某个制定位置,写入某个指定位置的这种基本功能就ok了(当然不是这样的简单..还有其他的要求)

storage driver能作的事情只有这些....
如果你想把别的电脑上的文件夹映射成你的电脑上的一个驱动器..
windows的网络共享就可以作道.....呵呵....
你应该知道他并不是一个storage driver

以上..........
hangzhoustayer
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2006-06-19
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-09-07 10:26
谢谢tiamo
问题是服务器端在linux下,windows那套协议在linux下没有实现.更重要的通讯协议已经指定了是ISCSI,你说scsi miniport做不到文件级控制这个也没有疑义,关键是不知道windows里面读写文件的机制,如果是必须等到实际写磁盘错误才返回写文件错误,那么不能满足我的要求,如果是写之前先read capacity得到可用空间再跟文件大小比较后,如果小的话就不写,那么file system driver我根本不需要去关心.此其一,如果必须要关注file system driver ,那么不知道file filter driver能不能办到,我知道filter driver 只关注IRP_READ,IRP_WRITE这些,不知道能不能从文件这个上层角度来控制?

其二:怎么通过底层的读写在上层体现成某个指定目录下的文件不太清楚,因为我在服务器端接受的是下层disk级别的写包,读包,不清楚上面的文件系统

谢谢
tiamo
VIP专家组
VIP专家组
  • 注册日期2002-02-26
  • 最后登录2018-01-09
  • 粉丝17
  • 关注4
  • 积分50分
  • 威望142点
  • 贡献值1点
  • 好评度40点
  • 原创分2分
  • 专家分15分
  • 原创先锋奖
  • 社区居民
8楼#
发布于:2004-09-07 13:12
呃......
我实在是看不明白你上面的那段话....

我的理解

你是不是有这么两个问题...

1.不知道windows会不会写超过你想要的大小范围的内容?
这个问题对你的driver来讲并没有什么关系..你知道你的空间的大小....你也应该知道所谓的那些read6,read10的op 会告诉你他要读什么地方,读多少..这样的数据足够你判断读写是否越界了....

2.你想把一个文件夹影射成一个磁盘....这个.linux下面一样能共享的...查一查google吧....
我对这个问题实在是无能为力.....

以上
hangzhoustayer
驱动小牛
驱动小牛
  • 注册日期2002-05-08
  • 最后登录2006-06-19
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-09-07 23:17
谢谢,我的问题实际是这样的,我觉得跟windows,linux应该没有多少关系

我要往硬盘上面某个目录里面写内容,现在已经有的是目录的句柄,在处理write10时怎么利用这个句柄加上一定的偏移在底层往硬盘写SRB后,使得在上层看起来的效果是window,linux里面在该目录下出现一个新的文件

谢谢
游客

返回顶部