private DiskGeometry ReadDiskGeometry(VhdPropertyAttribute attribute) { long offset = GetFooterOffset() + attribute.Offset; var attributeHelper = new AttributeHelper <DiskGeometry>(); var diskGeometry = new DiskGeometry(); diskGeometry.Cylinder = dataReader.ReadInt16(offset + attributeHelper.GetAttribute(() => diskGeometry.Cylinder).Offset); diskGeometry.Heads = dataReader.ReadByte(offset + attributeHelper.GetAttribute(() => diskGeometry.Heads).Offset); diskGeometry.Sectors = dataReader.ReadByte(offset + attributeHelper.GetAttribute(() => diskGeometry.Sectors).Offset); return(diskGeometry); }