阿七
级别: 未验证会员
精华:
0
发帖: 909
威望: 0 点
金钱: 2161 RMB
贡献值: 0 点
在线时间:512(小时)
注册时间:2006-03-29
最后登录:2008-08-07
|
教你看懂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是由8个字节组成的头标,它包含一定的参数,参数不同,SRB的功能也不一样。
在实际编程操作过程中,对于SRB的状态一定要不断的进行查询,一直到它的值从开始的00H(处理中)变成不是00H(其他状态码)为止。
说明:很多人好象不关心这写基础的东西,总问怎样修改设备的什么LOGO和序列号。不明白LOGO是什么东西?是不是制造商和产品型号?现在就这个问题简单说一下,过程从略,希望大家知道可以从编写FIRMWARE并修改FIRMWARE响应的区域就行了。
一般在FIRMWARE中,每个BLOCK都做了CHECKSUM和CRC检查,预防复制过程中出现错误,错误的FIRMWARE会导致升级设备的失败或者设备损坏,升级操作程序一般不做这个检查,这种检查是FIRMWARE在硬盘里运行时自己检查自身的。具体算法不能多说了,举个例子说明吧,拿IBM的厂家的一款硬盘为例(随便举的例子用来学习使用,不要用以实验,后果自负,还要说明一点,可能看到的代码是乱码,那是经过加密变换了的,还要解秘变换才能看到内容),如果要修改VID和PID:[IBM IC35L146UWDY10-0],相应的BLOCK的CHECKSUM和CRC检查代码为1011387F,如果将VID和PID改成了[STOL STOL.COM.CN]那么相应的BLOCK的CHECKSUM和CRC检查代码就应该改变为0C3E1A5E。
|
|
[楼 主]
|
Posted: 2007-05-30 10:19 |
| |