public void LoadHeaders(string filename) { try { this.Filename = filename; footer = new Footer(); footer.FromFile(filename); if (footer.DataOffset > 0) { dynamicHeader = new DynamicHeader(); dynamicHeader.FromFile(filename, (int)footer.DataOffset); blockAllocationTable = new BlockAllocationTable(dynamicHeader.TableOffset, dynamicHeader.BlockSize, dynamicHeader.MaxTableEntries); blockAllocationTable.FromFile(filename); masterBootRecord = new MasterBootRecord(blockAllocationTable); // ShowUsage(); // ShowDetailedUsage(); } else { masterBootRecord = new MasterBootRecord(filename, 0); // MessageBox.Show("So far all the good stuff involves Dynamic VHDs, so all you get is this pretty box really.", "Fixed VHD", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (VhdReadException ex) { this.vhdReadException = ex; } }