public override void LoadImage(string filename) { byte[] buffer; stream = File.Open(filename, FileMode.Open, FileAccess.ReadWrite, FileShare.Read); reader = new BinaryReader(stream); stream.Seek(-512, SeekOrigin.End); buffer = reader.ReadBytes(512); footer = Util.ByteArrayToStructureBigEndian <Footer>(buffer); stream.Seek(512, SeekOrigin.Begin); buffer = reader.ReadBytes(1024); header = Util.ByteArrayToStructureBigEndian <DiskHeader>(buffer); stream.Seek(0, SeekOrigin.Begin); identifyBuffer[1] = identifyBuffer[54] = footer.Cylinders; identifyBuffer[3] = identifyBuffer[55] = footer.Heads; identifyBuffer[4] = (ushort)(footer.SectorsPerCylinder * 512); identifyBuffer[6] = identifyBuffer[56] = footer.SectorsPerCylinder; identifyBuffer[57] = identifyBuffer[60] = (ushort)(footer.CurrentSize / 512); identifyBuffer[58] = identifyBuffer[61] = (ushort)((footer.CurrentSize / 512) >> 16); }
public override void LoadImage(string filename) { byte[] buffer; stream = File.Open(filename, FileMode.Open, FileAccess.ReadWrite, FileShare.Read); reader = new BinaryReader(stream); stream.Seek(-512, SeekOrigin.End); buffer = reader.ReadBytes(512); footer = Util.ByteArrayToStructureBigEndian<Footer>(buffer); stream.Seek(512, SeekOrigin.Begin); buffer = reader.ReadBytes(1024); header = Util.ByteArrayToStructureBigEndian<DiskHeader>(buffer); stream.Seek(0, SeekOrigin.Begin); identifyBuffer[1] = identifyBuffer[54] = footer.Cylinders; identifyBuffer[3] = identifyBuffer[55] = footer.Heads; identifyBuffer[4] = (ushort)(footer.SectorsPerCylinder * 512); identifyBuffer[6] = identifyBuffer[56] = footer.SectorsPerCylinder; identifyBuffer[57] = identifyBuffer[60] = (ushort)(footer.CurrentSize / 512); identifyBuffer[58] = identifyBuffer[61] = (ushort)((footer.CurrentSize / 512) >> 16); }