Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }