首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

dos/windows系统分区表结构体,该如何解决

2012-02-16 
dos/windows系统分区表结构体本人最近在写dos虚拟机,为了要和原来的dos的实现尽量保持一致,我找了资料,但

dos/windows系统分区表结构体
本人最近在写dos虚拟机,为了要和原来的dos的实现尽量保持一致,我找了资料,但是找不到分区表那个结构体(占16字节),希望高手告诉我一下
struct dp
{
  //文件属性占32个字节,这里是实现http://baike.baidu.com/view/567639.htm
  struct attr vol;
  struct chs start;//分区的起始地址(chs)
  //指向文件分配表的指针,因为可以是fat12,fat16,fat32,ntfs,所以我用void指针
  void * tab;
  TREE tree;//目录树
};
自己定义的指针(硬盘的)
struct chs
{
  unsigned long
  cyl: 10,//柱面
  head: 8,//磁道
  sec: 6,//扇区
  stat: 1,//扇区状态(好或坏)
  chc: 7;//校验值
};
上面是我的实现,但是占用很多空间,我想要原来dos/windows系统的


[解决办法]
typedef struct _PARTITION_TABLE_ENTRY{
unsigned char ActiveFlag;//00:not active,0x80:active
unsigned char StartCHS[3];
unsigned char FileSystem;//0:not used,0x5 0xf:extended,0x6:fat16,0xb 0x1b 0xc 0x1c:fat32,0x7:ntfs
unsigned char EndCHS[3];
unsigned int BaseSector;
unsigned int NumberOfSectors;
}PARTITION_TABLE_ENTRY,*PPARTITION_TABLE_ENTRY;

热点排行