KFS.Disks.MasterBootRecord.MasterBootRecord C# (CSharp) Method

MasterBootRecord() public method

public MasterBootRecord ( WinPhysicalDisk disk ) : System
disk WinPhysicalDisk
return System
		public MasterBootRecord(WinPhysicalDisk disk) {
			PhysicalDisk = disk;
			Offset = 0;
			Length = MBR_SIZE;

			_partitionEntries = new List<PartitionEntry>();

			try {
				_data = disk.GetBytes(0, MBR_SIZE);
			} catch (Exception e) {
				throw new Exception("Failed to load the Master Boot Record!", e);
			}

			for (int i = 0; i < MAX_PARTITIONS; i++) {
				int offset = 0x1BE + 16 * i;
				if (PartitionEntryExistsAt(offset, 16)) {
					_partitionEntries.Add(new PartitionEntry(_data, offset, (int)disk.Attributes.BytesPerSector, i));
				}
			}

			_partitionEntries.Sort(new Comparison<PartitionEntry>(delegate(PartitionEntry a, PartitionEntry b) {
				return a.PartitionOffset.CompareTo(b.PartitionOffset);
			}));
		}