- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FAT16文件系统解析(C#版本) 今天FAT文件系统总算告一个段落了,已经可以非常完美的读取包含FAT16文件系统的磁盘了。由于是采用C#编写,直接借鉴的代码很少,并且考虑到MF不支持二进制序列化,所以对数据结构的解析,是一个一个字节进行的,所以很耗费时间。下面就是程序运行后的结果(可以识别物理磁盘及物理磁盘的分区)。 下图是用文件浏览器查看的结果。 磁盘系统的MDR和DBR信息如下。 为了便于后来者,把主要的结构声明代码罗列如下,希望有借鉴意义。 //基本类 [叶帆工作室] /yefanqiu/public class DiskBase{ #region //MBR /yefanqiu/ public struct PartitionTable { public byte BootFlag; //分区活动标志 只能选00H和80H。80H为活动,00H为非活动 public CHS StartCHS; //分区开始的柱面、磁头、扇区 public byte SystemID; //分区类型 01 FAT32 04 FAT1632M 06 FAT16 07 HPFS/NTFS 05 0F 扩展分区 public CHS EndCHS; //分区结束的柱面、磁头、扇区 public UInt32 RelativeSectors; //分区起始扇区数,指分区相对于记录该分区的分区表的扇区位置之差 (该分区表:LBA=0x0)。 public UInt32 TotalSectors; //分区总扇区数 } public struct CHS { public byte Head; //磁头 public byte Sector; //扇区 六位 public UInt16 Cylinder; //柱面 十位 } public struct MBR { public byte[] bytBootCode; //ofs:0.引导代码446字节 FA 33 C0 8E D0 BC… public PartitionTable[] PT; //ofs:446.64个字节 分区表 length=4*16 public UInt16 EndingFlag; //ofs:510.结束标识:0xAA55。 public MBR(byte[] bytData) { int i; bytBootCode = new byte[446]; for (i = 0; i 446; i++) bytBootCode[i] = bytData[i]; PT = new PartitionTable[4]; for (i = 0; i 4; i++) { PT[i].BootFlag = bytData[446 + i * 16 + 0]; PT[i].StartCHS.Head = bytData[446 + i * 16 + 1]; PT[i].StartCHS.Sector = (byte)(bytData[446 + i * 16 + 2] 0x3f); PT[i].StartCHS.Cylinder = (UInt16)(((bytData[446 + i * 16 + 2] 0xc0) 2) | bytData[446 + i * 16 + 3]); PT[i].SystemID = bytData[446 + i * 16 + 4]; PT[i].EndCHS.Head = bytData[446 + i * 16 + 5]; PT[i].EndCHS.Sector = (byte)(bytData[446 + i * 16 + 6]
您可能关注的文档
最近下载
- DB44T 2719-2025《有限空间智慧安全管控技术规范》.pdf VIP
- 河堤建设工程施工合同.doc VIP
- 2024年执业中药师考试复习资料重点知识点与背诵口诀.pdf VIP
- 职业院校课程思政与思政课程协同育人典型案例.pdf VIP
- 12D101-5(替代94D101-5)110kV及以下电缆敷设.docx VIP
- 北师大版小学六年级数学上册第1单元测试卷(有答案).docx VIP
- 第六章管式反应器.ppt VIP
- 六年级上册分数四则混合运算300题及答案.docx VIP
- 2024—2025学年河南省开封高级中学高一上学期第一次月考物理试卷.doc VIP
- 学校升旗台工程方案范文(3篇).docx VIP
文档评论(0)