狂妄嚣张 发表于 2008-9-28 21:58:29

实用:教你看懂SCSI卡里的错误提示

实用:教你看懂SCSI卡里的错误提示
有人问用SCSI卡里的工具时有时候会出现一些错误信息,怎么能看明白?
这里简单说一下,卡里出现的信息往往是对SCSI卡操作过程中的产生的,自带的工具和电脑程序通过ASPI对卡操作是一样的,这牵扯到ASPI的调用函数,ASPI的函数有7个:
1,00H,适配器咨询
2,01H,获取设备类型
3,02H,执行SCSI命令
4,03H,终止SCSI命令
5,04H,复位SCSI设备,这点要说明的是,由于SCSI是多任务处理,如果出错只能终止相应的SCSI命令而不能复位SCSI适配器,强制复位会导致所有的正在处理的任务全部停止运行,上面我贴出的格式化程序里就没有使用任何复位和终止命令,所以,即使在DOS中SCSI设备格式化进程运行的同时可以干别的工作。
6,05H,设置适配卡的参数
7,06H,取得设备的信息。
函数命令执行过程中程序就进入监控过程,监控程序将从ASPI获得的状态字节来判断运行情况,状态字节最常用的有7种:
1,00H,正在处理中。
2,01H,处理成功。
3,02H,SRB被主机取消
4,04H,出错
5,80H,无效的SRB
6,81H,无效的适配器
7,82H,无效的SCSI设备或者设备没有找到。
SRB。SRB是什么东西?我以前的帖子里几次都出现SRB,SRB是由8个字节组成的头标,它包含一定的参数,参数不同,SRB的功能也不一样。
在实际编程操作过程中,对于SRB的状态一定要不断的进行查询,一直到他的值从开始的00H(处理中)变成不是00H(其他状态码)为止。
说明:很多人好象不关心这写基础的东西,总问怎样修改设备的什么LOGO和序列号。我不明白LOGO是什么东西?是不是制造商和产品型号?我现在就这个问题简单说一下,过程从略,希望大家知道可以从编写FIRMWARE并修改FIRMWARE响应的区域就行了。
一般在FIRMWARE中,每个BLOCK都做了CHECKSUM和CRC检查,预防复制过程中出现错误,错误的FIRMWARE会导致升级设备的失败或者设备损坏,升级操作程序一般不做这个检查,这种检查是FIRMWARE在硬盘里运行时自己检查自身的。具体算法我不能多说了,举个例子说明吧,拿IBM的厂家的一款硬盘为例(随便举的例子用来学习使用,不要用以实验,后果自负,还要说明一点,你可能看到的代码是乱码,那是经过加密变换了的,你还要解秘变换才能看到内容),如果要修改VID和PID:,相应的BLOCK的CHECKSUM和CRC检查代码为1011387F,如果将VID和PID改成了那么相应的BLOCK的CHECKSUM和CRC检查代码就应该改变为0C3E1A5E。

intelfu 发表于 2010-8-29 16:19:15

回复 1# 狂妄嚣张


    very good!

371020091 发表于 2010-9-22 00:43:15

不错正学习呢

wubaiwan 发表于 2010-9-23 09:24:34

回复 1# 狂妄嚣张


    good!good!
页: [1]
查看完整版本: 实用:教你看懂SCSI卡里的错误提示