版块
论坛
喜欢
话题
应用
搜索
登录
注册
cidentifier的个人空间
访问量
2
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=69585
kangzh,terrychen大虾看过来,关于scsiminiport,给100分
我的scsiminiport经常会出现bus reset,系统就会挂起,没有任何响应。我认为只要正确处理HwScsiResetBus,系统会从bus reset状态恢复过来,我的HwScsiResetBus的内容如下:BOOLEAN MyDiskResetBus( IN P...
全文
回复
(
21
)
2004-08-21 16:48
来自版块 -
内核编程
◆
◆
表情
告诉我的粉丝
提 交
terrychen
:
我建议你在startio里面这么做,你需要用timercall返回的srb,在startio里面也ScsiPortNotification()回去,不过status改为pending,那些SRB_STATUS_INVALID_REQUEST和你直接返回success的也在star...
(2004-08-25 09:16)
回复
Sundsea
:
顶 !!!!!!!!
(2004-08-24 21:00)
回复
cidentifier
:
我的文件系统是ntfs,格式化的时候每块大小设为512字节。读写时,srb的cdb中给出逻辑块号和需要读写多少块,偏移=逻辑块号*512,这样不就可以了吗?
(2004-08-24 15:26)
回复
kangzh
:
我没有出现过你说的情况,一般出现这个现象大概有几个原因:1,你的数据偏移不对,不能被操作系统识别,2,没有及时反馈,3,其他错误,你的代码太长,呵呵,我检查不出来,你看看我说的数据偏移是否正确
(2004-08-24 14:58)
回复
cidentifier
:
两位老大不在家吗,顶一顶
(2004-08-24 14:12)
回复
cidentifier
:
〉建议你在HwVDiskTimer里面 〉while( ListEntry!=NULL ) 〉{ 〉pSrb = SRB_FROM_ENTRY(ListEntry); 〉后面 〉加一句 pSrb->SrbStatus = SRB_STATUS_SUCCESS; ...
(2004-08-23 18:02)
回复
terrychen
:
建议你在HwVDiskTimer里面 while( ListEntry!=NULL ) { pSrb = SRB_FROM_ENTRY(ListEntry); 后面 加一句 pSrb->SrbStatus = SRB_STATUS_SUCCESS; 试试看,看结...
(2004-08-23 17:06)
回复
cidentifier
:
terrychen, 以下是我的代码(只贴出最主要的vdisk.c文件,其他代码跟这个问题不相关,太多了,就不贴了),其中有些地方是访问tdi的,不用管。我只在HwVDiskTimer中调用了ScsiPortNotification来完成srb。 帮我看看,多谢! #...
(2004-08-23 16:35)
回复
terrychen
:
应该还是你ScsiPortCompleteRequest返回状态的问题,bus reset是一般在10秒中如果还不能返回数据(pending或者没有返回数据)情况下发生,具体timeout 的时间是由scsi_request_block里面的TimeOutValue数值决定的,1...
(2004-08-23 15:09)
回复
cidentifier
:
问题是一旦出现bus reset,我还能恢复过来吗? 由于我做的是网络虚拟磁盘,保持响应时间在10ms之内对于网络来说不是那么容易保证的,比如服务器负载重,局域网网络负载重等情况,所以bus reset迟早会发生,这是一个不能回避的问题。 所以在一方面是提高响应时间,另一...
(2004-08-23 14:23)
回复
« 上一页
1
2
3
下一页 »
cidentifier
加关注
写私信
0
关注
1
粉丝
54
帖子
返回顶部