扩展Int 13H调用规范
2008-04-29 09:34:09 来源:WEB开发网第二部分技术资料
第一章扩展Int13H技术资料
一.简介
设计扩展Int13H接口的目的是为了扩展BIOS的功能,使其支持多于1024柱面的硬盘,以及可移动介质的锁定,解锁及弹出等功能。
二.数据结构
1.数据类型约定
BYTE 1字节整型( 8位)
WORD 2字节整型(16位)
DWORD4字节整型(32位)
QWORD8字节整型(64位)
2.磁盘地址数据包DiskAddressPacket(DAP)
DAP是基于绝对扇区地址的,因此利用DAP,Int13H可以轻松地逾越1024柱面的限制,因为它根本就不需要CHS的概念。
DAP的结构如下:
structDiskAddressPacket
{
BYTEPacketSize; //数据包尺寸(16字节)
BYTEReserved; //==0
WORDBlockCount; //要传输的数据块个数(以扇区为单位)
DWORDBufferAddr; //传输缓冲地址(segment:offset)
QWORDBlockNum; //磁盘起始绝对块地址
};
PacketSize保存了DAP结构的尺寸,以便将来对其进行扩充。在目前使用的扩展Int13H版本中PacketSize恒等于16。如果它小于16,扩展Int13H将返回错误码(AH=01,CF=1)。
BlockCount对于输入来说是需要传输的数据块总数,对于输出来说是实际传输的数据块个数。BlockCount=0表示不传输任何数据块。
BufferAddr是传输数据缓冲区的32位地址(段地址:偏移量)。数据缓冲区必须位于常规内存以内(1M)。
BlockNum表示的是从磁盘开始算起的绝对块地址(以扇区为单位),与分区无关。第一个块地址为0。一般来说,BlockNum与CHS地址的关系是:
BlockNum=(cylinder*NumberOfHeads+head)*SectorsPerTrack+sector-1;
其中cylinder,head,sector是CHS地址,NumberOfHeads是磁盘的磁头数,SectorsPerTrack是磁盘每磁道的扇区数。
也就是说BlockNum是沿着扇区->磁道->柱面的顺序记数的。这一顺序是由磁盘控制器虚拟的,磁盘表面数据块的实际排列顺序可能与此不同(如为了提高磁盘速度而设置的间隔因子将会打乱扇区的排列顺序)。
3.驱动器参数数据包DriveParametersPacket
驱动器参数数据包是在扩展Int13H的取得驱动器参数子功能调用中使用的数据包。格式如下:
structDriveParametersPacket
{
WORDInfoSize; //数据包尺寸(26字节)
WORDFlags; //信息标志
DWORDCylinders; //磁盘柱面数
DWORDHeads; //磁盘磁头数
DWORDSectorsPerTrack; //每磁道扇区数
QWORDSectors; //磁盘总扇区数
WORDSectorSize; //扇区尺寸(以字节为单位)
};
信息标志用于返回磁盘的附加信息,每一位的定义如下:
0位:
0=可能发生DMA边界错误
1=DMA边界错误将被透明处理
如果这位置1,表示BIOS将自动处理DMA边界错误,也就是说错误代码09H永远也不会出现.
1位:
0=未提供CHS信息
1=CHS信息合法
如果块设备的传统CHS几何信息不适当的话,该位将置0.
2位:
0=驱动器不可移动
1=驱动器可移动
3位:表示该驱动器是否支持写入时校验.
4位:
0=驱动器不具备介质更换检测线
1=驱动器具备介质更换检测线
5位:
0=驱动器不可锁定
1=驱动器可以锁定
要存取驱动器号大于0x80的可移动驱动器,该位必须置1(某些驱动器号为0到0x7F的设备也需要置位)
6位:
0=CHS值是当前存储介质的值(仅对于可移动介质),如果驱动器中有存储介质,CHS值将被返回.
1=CHS值是驱动器支持的最大值(此时驱动器中没有介质).
7-15位:保留,必须置0.
- ››Intent和IntentFilter详解
- ››Interface继承至System.Object?
- ››调用已注册会员人数和最新会员名称
- ››Intent调用大全
- ››IntentService实现原理及内部代码
- ››Internet Explorer 无法打开
- ››Intel和Nokia宣称MeeGo将比Android更加开放且方便...
- ››扩展Axis2框架,支持基于JVM的脚本语言
- ››扩展WebSphere Portal V6个性化功能
- ››Intent Android 详解
- ››扩展JavaScript的时候,千万要保留其原来的所有功...
- ››Internet Explorer 9 Platform 1.9.7916.6000 Pre...
更多精彩
赞助商链接