/// <summary> /// Displays the allocation layers. /// </summary> private void DisplayAllocationUnitLayers() { allocationContainer.IncludeIam = false; allocationContainer.ClearMapLayers(); var unallocated = new AllocationLayer(); unallocated.Name = "Available - (Unused)"; unallocated.Colour = Color.Gainsboro; unallocated.Visible = false; allocationContainer.AddMapLayer(unallocated); CancelWorkerAndWait(allocUnitBackgroundWorker); allocUnitBackgroundWorker.RunWorkerAsync(); }
/// <summary> /// Handles the PageOver event of the AllocationContainer control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="InternalsViewer.Internals.Pages.PageEventArgs"/> instance containing the event data.</param> private void AllocationContainer_PageOver(object sender, PageEventArgs e) { AllocUnitLabel.Text = string.Empty; pageAddressToolStripStatusLabel.Text = e.Address.ToString(); switch (allocationContainer.Mode) { case MapMode.Standard: if (e.Address.PageId % Database.PfsInterval == 0 || e.Address.PageId == 1) { AllocUnitLabel.Text = "PFS"; } if (e.Address.PageId % Database.AllocationInterval < 8) { switch (e.Address.PageId % Database.AllocationInterval) { case 0: if (e.Address.PageId == 0) { AllocUnitLabel.Text = "File Header"; } break; case 1: AllocUnitLabel.Text = "GAM"; break; case 2: AllocUnitLabel.Text = "SGAM"; break; case 6: AllocUnitLabel.Text = "DCM"; break; case 7: AllocUnitLabel.Text = "BCM"; break; case 9: AllocUnitLabel.Text = "Boot Page"; break; } } var layers = AllocationLayer.FindPage(e.Address, allocationContainer.AllocationLayers); foreach (var name in layers) { if (AllocUnitLabel.Text != string.Empty) { AllocUnitLabel.Text += " | "; } AllocUnitLabel.Text += name; } break; case MapMode.Pfs: AllocUnitLabel.Text = allocationContainer.PagePfsByte(e.Address).ToString(); break; } }