扩展Int 13H调用规范
2008-04-29 09:34:09 来源:WEB开发网二.BootSector结构简介
1.BootSector的组成
BootSector也就是硬盘的第一个扇区,它由MBR(MasterBootRecord),DPT(DiskPartitionTable)和BootRecordID三部分组成。
MBR又称作主引导记录占用BootSector的前446个字节(0to0x1BD),存放系统主引导程序(它负责从活动分区中装载并运行系统引导程序)。
DPT即主分区表占用64个字节(0x1BEto0x1FD),记录了磁盘的基本分区信息。主分区表分为四个分区项,每项16字节,分别记录了每个主分区的信息(因此最多可以有四个主分区)。
BootRecordID即引导区标记占用两个字节(0x1FEand0x1FF),对于合法引导区,它等于0xAA55,这是判别引导区是否合法的标志。
BootSector的具体结构如下图所示:
Offset0000H
Offset01BDH
Offset01BEH
Offset01CDH
Offset01CEH
Offset01DDH
Offset01DEH
Offset01EDH
Offset01EEH
Offset01FDH
Offset01FEH
Offset01FFH
MasterBootRecord
主引导记录(446字节)
分区信息1
分区信息2
分区信息3
分区信息4
校验字0xAA55
2.分区表结构简介
分区表由四个分区项构成,每一项的结构如下:
BYTEState :分区状态,0=未激活,0x80=激活(注意此项)
BYTEStartHead :分区起始磁头号
WORDStartSC :分区起始扇区和柱面号,底字节的低6位为扇区号,高2位为柱面号的第9,10位,高字节为柱面号的低8位
BYTEType :分区类型,如0x0B=FAT32,0x83=Linux等,00表示此项未用(注1)
BYTEEndHead :分区结束磁头号
WORDEndSC :分区结束扇区和柱面号,定义同前
DWORDRelative :在线性寻址方式下的分区相对扇区地址(对于基本分区即为绝对地址)
DWORDSectors :分区大小(总扇区数)
注意:在DOS/Windows系统下,基本分区必须以柱面为单位划分(Sectors*Heads个扇区),如对于CHS为764/255/63的硬盘,分区的最小尺寸为255*63*512/1048576=7.844MB。
3.扩展分区简介
由于主分区表中只能分四个分区,无法满足需求,因此设计了一种扩展分区格式。基本上说,扩展分区的信息是以链表形式存放的,但也有一些特别的地方。
首先,主分区表中要有一个基本扩展分区项,所有扩展分区都隶属于它,也就是说其他所有扩展分区的空间都必须包括在这个基本扩展分区中。对于DOS/Windows来说,扩展分区的类型为0x05。
除基本扩展分区以外的其他所有扩展分区则以链表的形式级联存放,后一个扩展分区的数据项记录在前一个扩展分区的分区表中,但两个扩展分区的空间并不重叠。
扩展分区类似于一个完整的硬盘,必须进一步分区才能使用。但每个扩展分区中只能存在一个其他分区。此分区在DOS/Windows环境中即为逻辑盘。因此每一个扩展分区的分区表(同样存储在扩展分区的第一个扇区中)中最多只能有两个分区数据项(包括下一个扩展分区的数据项)。
扩展分区和逻辑盘关系请参考注1。
- ››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...
更多精彩
赞助商链接