设为首页|收藏本页|用户反馈|网站地图
今天是:
您现在的位置: 中华管理在线 >> 论文 >> IT类论文 >> 正文
用扩展INT13H研析并恢复大容量硬盘分区信息链表
作者:佚名    论文来源:本站整理    更新时间:2007-8-2

  内容摘要:本文利用扩展INT13H的磁盘地址数据包及相关调用,分析了整个分区链表并给出了链表中任一结点分区信息丢失或被破坏之后的一种恢复方法。
  
  关键字:扩展INT13H、数据包、分区信息、链表、恢复
  
  一、扩展INT13H相关读写接口规范概述
  
  扩展INT13H接口设计的目的是为了扩展BIOS的功能,使之能处理柱面数大于1024的硬盘,并支持移动存贮介质的锁定、解锁和弹出等各类新增功能。
  
  1、数据类型定义:
  
  BYTE一字节;WORD二字节;DWORD四字节;QWORD八字节;
  
  磁盘读写地址数据包DRWAP(DiskReadWriteAddressPacket),利用该数据包中断INT13H可以直接读写处理目前主流硬盘上的任一扇区,匆需理会传统磁盘概念中的通过柱面号、磁头号及扇区号(CHS)的物理扇区定位方式。
  
  DRWAP结构如下:
  
  StructDRWAP
  
  {BYTEPacketSize;//数据包所占字节数,有10H和18H两种,本文用前者
  
  BYTEReserved;//保留字节,设为00H
  
  WORDBlockcount;//传输的数据块个数(最大值为7FH),以扇区为单位
  
  DORDTransferBuffer;//传输缓冲区地址(SEG:OFFSET)
  
  QORDAbsoluteBlockNumber;//磁盘起始绝对扇区号(主引导扇区为0号)
  
  }
  
  AbsoluteBlockNumber与传统CHS的关系如下:
  
  AbsoluteBlockNumber=(Cylinder*NumHeads+Head)*SectorPerTrack+Sector-1
  
  DRWAP数据包的获取及实际操作
  
  2、定义磁盘读写地址数据包获取指定扇区之内容
  
  入口参数:AH=42H;DL=80H;DS:SI=DRWAP首地址
  
  出口参数:CF=NCOK;CF=CYERROR
  
  二、分区信息链表解析
  
  读取主引导扇区操作过程:(为操作的连续性,本文不采用传统INT13H的功能号02)磁盘读写地址数据包按如下方式定义:
  
  进入DEBUG状态之后,DS和SI采用当前默认值,假设为DS=1216,SI=0000则E命令或F命令从1216:0000处输入以下16个字节内容
  
  1216:00001000010000021612-0000000000000000
  
  数据包长度=10H=16个字节保留字节=00H要传输的扇区个数=0001H=1个
  
  缓冲区地址DS:SI=1216:0200磁盘起始绝对扇区号=0000000000000000H=0号
  
  -A100
  
  1216:0100MOVAH,42
  

[1] [2] [3] 下一页

延伸阅读:
[165博客] [社区讨论] [打印此文] [责任编辑:蓝色烟花]
更多>>
娱乐图文精彩推荐
更多>>
中华健康每日推荐
更多>>
中华财经创业
今日财经要闻
股市大盘
创业指南
管理学论文
经济学论文