public void VhdFooter_Checksum() { HardDiskFooter target = new HardDiskFooter(); var firstChecksum = BitConverter.ToString(target.Checksum); target.BeginUpdate(); target.UniqueId = Guid.NewGuid(); Assert.AreEqual(firstChecksum, BitConverter.ToString(target.Checksum)); Assert.AreEqual(false, target.IsChecksumCorrect); target.EndUpdate(); Assert.AreNotEqual(firstChecksum, BitConverter.ToString(target.Checksum)); Assert.AreEqual(true, target.IsChecksumCorrect); }
public void VhdFooter_Create2() { HardDiskFooter target = new HardDiskFooter(); target.Cookie = "conectix"; target.Features = VhdFeature.Reserved; target.FileFormatVersion = new Version(1, 0); target.DataOffset = (UInt64)0xFFFFFFFFFFFFFFFF; target.TimeStamp = new DateTime(2011, 5, 29, 2, 41, 12, DateTimeKind.Utc); target.CreatorApplication = VhdCreatorApplication.MicrosoftWindows; target.CreatorVersion = new Version(6, 1); target.CreatorHostOs = VhdCreatorHostOs.Windows; target.SetSize((UInt64)34359738368); target.OriginalSize = target.CurrentSize; target.DiskType = VhdDiskType.FixedHardDisk; target.UniqueId = new Guid("a9fda548-8174-4d23-b389-e941d2337ef7"); target.SavedState = false; Assert.AreEqual(16448, target.DiskGeometryCylinders); Assert.AreEqual(16, target.DiskGeometryHeads); Assert.AreEqual(255, target.DiskGeometrySectors); Assert.AreEqual(target.CurrentSize, target.OriginalSize); Assert.AreEqual("63-6F-6E-65-63-74-69-78-00-00-00-02-00-01-00-00-FF-FF-FF-FF-FF-FF-FF-FF-15-74-6E-C8-77-69-6E-20-00-06-00-01-57-69-32-6B-00-00-00-08-00-00-00-00-00-00-00-08-00-00-00-00-40-40-10-FF-00-00-00-02-FF-FF-E5-9D-48-A5-FD-A9-74-81-23-4D-B3-89-E9-41-D2-33-7E-F7-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00", BitConverter.ToString(target.Bytes)); }
public void VhdFooter_Create1() { HardDiskFooter target = new HardDiskFooter(); target.Cookie = "conectix"; target.Features = VhdFeature.Reserved; target.FileFormatVersion = new Version(1, 0); target.DataOffset = (UInt64)0xFFFFFFFFFFFFFFFF; target.TimeStamp = new DateTime(2011, 8, 16, 5, 31, 12, DateTimeKind.Utc); target.CreatorApplication = VhdCreatorApplication.MicrosoftWindows; target.CreatorVersion = new Version(6, 1); target.CreatorHostOs = VhdCreatorHostOs.Windows; target.SetSize((UInt64)3221225472); target.OriginalSize = target.CurrentSize; target.DiskType = VhdDiskType.FixedHardDisk; target.UniqueId = new Guid("5ea9e33a-1ddd-49a3-bd6d-3cd7905ab670"); target.SavedState = false; Assert.AreEqual(6241, target.DiskGeometryCylinders); Assert.AreEqual(16, target.DiskGeometryHeads); Assert.AreEqual(63, target.DiskGeometrySectors); Assert.AreEqual(target.CurrentSize, target.OriginalSize); Assert.AreEqual("63-6F-6E-65-63-74-69-78-00-00-00-02-00-01-00-00-FF-FF-FF-FF-FF-FF-FF-FF-15-DC-BD-20-77-69-6E-20-00-06-00-01-57-69-32-6B-00-00-00-00-C0-00-00-00-00-00-00-00-C0-00-00-00-18-61-10-3F-00-00-00-02-FF-FF-E5-66-3A-E3-A9-5E-DD-1D-A3-49-BD-6D-3C-D7-90-5A-B6-70-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00", BitConverter.ToString(target.Bytes)); }
private void UpdateData(string vhdFileName) { if (vhdFileName == null) { list.Items.Clear(); list.Groups.Clear(); mnuRefresh.Enabled = false; mnuAttach.Enabled = false; mnuDetach.Enabled = false; mnuAutomount.Enabled = false; mnuDrive.Enabled = false; mnuAutomount_DropDownOpening(null, null); mnuDrive_DropDownOpening(null, null); return; } try { this.Cursor = Cursors.WaitCursor; mnuRefresh.Enabled = true; using (var document = new Medo.IO.VirtualDisk(vhdFileName)) { var items = new List<ListViewItem>(); var fileInfo = new FileInfo(document.FileName); items.Add(new ListViewItem(new string[] { "File path", fileInfo.Directory.FullName }) { Group = GroupFileSystem }); items.Add(new ListViewItem(new string[] { "File name", fileInfo.Name }) { Group = GroupFileSystem }); try { var fi = new FileInfo(document.FileName); items.Add(new ListViewItem(new string[] { "File size", string.Format(CultureInfo.CurrentCulture, "{0} ({1:#,##0} bytes)", BinaryPrefixExtensions.ToBinaryPrefixString(fi.Length, "B", "0"), fi.Length) }) { Group = GroupFileSystem }); } catch { } try { var di = new DriveInfo(new FileInfo(document.FileName).Directory.Root.FullName); items.Add(new ListViewItem(new string[] { "Free space on " + di.Name, string.Format(CultureInfo.CurrentCulture, "{0} ({1:#,##0} bytes)", BinaryPrefixExtensions.ToBinaryPrefixString(di.AvailableFreeSpace, "B", "0"), di.AvailableFreeSpace) }) { Group = GroupFileSystem }); } catch { } document.Open(Medo.IO.VirtualDiskAccessMask.GetInfo | Medo.IO.VirtualDiskAccessMask.Detach); //Workaround: The VirtualDiskAccessMask parameter must include the VIRTUAL_DISK_ACCESS_DETACH (0x00040000) flag. string attachedDevice = null; string[] attachedPaths = null; try { attachedDevice = document.GetAttachedPath(); attachedPaths = PathFromDevice.GetPath(attachedDevice); } catch { } if (attachedDevice != null) { items.Add(new ListViewItem(new string[] { "Attached device", attachedDevice }) { Group = GroupFileSystem }); } if (attachedPaths != null) { for (int i = 0; i < attachedPaths.Length; i++) { items.Add(new ListViewItem(new string[] { ((i == 0) ? "Attached path" : ""), attachedPaths[i] }) { Group = GroupFileSystem }); } } try { long virtualSize; long physicalSize; int blockSize; int sectorSize; document.GetSize(out virtualSize, out physicalSize, out blockSize, out sectorSize); items.Add(new ListViewItem(new string[] { "Virtual size", string.Format(CultureInfo.CurrentCulture, "{0} ({1:#,##0} bytes)", BinaryPrefixExtensions.ToBinaryPrefixString(virtualSize, "B", "0"), virtualSize) }) { Group = GroupDetails }); if (fileInfo.Length != physicalSize) { items.Add(new ListViewItem(new string[] { "Physical size", string.Format(CultureInfo.CurrentCulture, "{0} ({1:#,##0} bytes)", BinaryPrefixExtensions.ToBinaryPrefixString(physicalSize, "B", "0"), physicalSize) }) { Group = GroupDetails }); } if (blockSize != 0) { items.Add(new ListViewItem(new string[] { "Block size", string.Format(CultureInfo.CurrentCulture, "{0} ({1:#,##0} bytes)", BinaryPrefixExtensions.ToBinaryPrefixString(((long)blockSize), "B", "0"), blockSize) }) { Group = GroupDetails }); } items.Add(new ListViewItem(new string[] { "Sector size", string.Format(CultureInfo.CurrentCulture, "{0} ({1} bytes)", BinaryPrefixExtensions.ToBinaryPrefixString(((long)sectorSize), "B", "0"), sectorSize) }) { Group = GroupDetails }); } catch { } try { items.Add(new ListViewItem(new string[] { "Identifier", document.GetIdentifier().ToString() }) { Group = GroupDetails }); } catch { } try { int deviceId; Guid vendorId; document.GetVirtualStorageType(out deviceId, out vendorId); string deviceText = string.Format(CultureInfo.InvariantCulture, "Unknown ({0})", deviceId); switch (deviceId) { case 1: deviceText = "ISO"; break; case 2: deviceText = "VHD"; break; case 3: deviceText = "VHDX"; break; } string vendorText = string.Format(CultureInfo.InvariantCulture, "Unknown ({0})", vendorId); if (vendorId.Equals(new Guid("EC984AEC-A0F9-47e9-901F-71415A66345B"))) { vendorText = "Microsoft"; } items.Add(new ListViewItem(new string[] { "Device ID", deviceText }) { Group = GroupDetails }); items.Add(new ListViewItem(new string[] { "Vendor ID", vendorText }) { Group = GroupDetails }); } catch { } try { items.Add(new ListViewItem(new string[] { "Provider subtype", string.Format(CultureInfo.CurrentCulture, "{0} (0x{0:x8})", document.GetProviderSubtype()) }) { Group = GroupDetails }); } catch { } if (document.DiskType == Medo.IO.VirtualDiskType.Vhd) { try { var footerCopyBytes = new byte[512]; var headerBytes = new byte[1024]; var footerBytes = new byte[512]; using (var vhdFile = new FileStream(vhdFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { vhdFile.Read(footerCopyBytes, 0, 512); vhdFile.Read(headerBytes, 0, 1024); vhdFile.Position = vhdFile.Length - 512; vhdFile.Read(footerBytes, 0, 512); } var footer = new HardDiskFooter(footerBytes); if (footer.Cookie != "conectix") { items.Add(new ListViewItem(new string[] { "Cookie", footer.Cookie }) { Group = GroupInternals }); } items.Add(new ListViewItem(new string[] { "Creation time stamp", string.Format(CultureInfo.CurrentCulture, "{0}", footer.TimeStamp.ToLocalTime()) }) { Group = GroupInternals }); var creatorApplicationText = string.Format(CultureInfo.InvariantCulture, "Unknown (0x{0:x4})", (int)footer.CreatorApplication); switch (footer.CreatorApplication) { case VhdCreatorApplication.JosipMedvedVhdAttach: creatorApplicationText = "Josip Medved's VHD Attach"; break; case VhdCreatorApplication.MicrosoftSysinternalsDisk2Vhd: creatorApplicationText = "Microsoft Sysinternals Disk2vhd"; break; case VhdCreatorApplication.MicrosoftVirtualPC: creatorApplicationText = "Microsoft Virtual PC"; break; case VhdCreatorApplication.MicrosoftVirtualServer: creatorApplicationText = "Microsoft Virtual Server"; break; case VhdCreatorApplication.MicrosoftWindows: creatorApplicationText = "Microsoft Windows"; break; case VhdCreatorApplication.OracleVirtualBox: creatorApplicationText = "Oracle VirtualBox"; break; } items.Add(new ListViewItem(new string[] { "Creator application", string.Format(CultureInfo.InvariantCulture, "{0} {1}.{2}", creatorApplicationText, footer.CreatorVersion.Major, footer.CreatorVersion.Minor) }) { Group = GroupInternals }); var creatorHostOsText = string.Format(CultureInfo.InvariantCulture, "Unknown (0x{0:x4})", (int)footer.CreatorHostOs); switch (footer.CreatorHostOs) { case VhdCreatorHostOs.Windows: creatorHostOsText = "Windows"; break; case VhdCreatorHostOs.Macintosh: creatorHostOsText = "Macintosh"; break; } items.Add(new ListViewItem(new string[] { "Creator host OS", creatorHostOsText }) { Group = GroupInternals }); items.Add(new ListViewItem(new string[] { "Disk geometry", string.Format(CultureInfo.CurrentCulture, "{0}, {1}, {2}", CylinderSuffix.GetText(footer.DiskGeometryCylinders), HeadSuffix.GetText(footer.DiskGeometryHeads), SectorSuffix.GetText(footer.DiskGeometrySectors)) }) { Group = GroupInternals }); var diskTypeText = string.Format(CultureInfo.CurrentCulture, "Unknown ({0}: 0x{0:x4})", (int)footer.DiskType); switch ((int)footer.DiskType) { case 0: diskTypeText = "None"; break; case 1: diskTypeText = "Reserved (deprecated: 0x0001)"; break; case 2: diskTypeText = "Fixed hard disk"; break; case 3: diskTypeText = "Dynamic hard disk"; break; case 4: diskTypeText = "Differencing hard disk"; break; case 5: diskTypeText = "Reserved (deprecated: 0x0005)"; break; case 6: diskTypeText = "Reserved (deprecated: 0x0006)"; break; } items.Add(new ListViewItem(new string[] { "Disk type", diskTypeText }) { Group = GroupInternals }); if ((footer.DiskType == VhdDiskType.DynamicHardDisk) || (footer.DiskType == VhdDiskType.DifferencingHardDisk)) { var header = new DynamicDiskHeader(headerBytes); if (header.Cookie != "cxsparse") { items.Add(new ListViewItem(new string[] { "Cookie", header.Cookie }) { Group = GroupInternalsDynamic }); } if (header.DataOffset != ulong.MaxValue) { items.Add(new ListViewItem(new string[] { "Data offset", header.DataOffset.ToString("#,##0") }) { Group = GroupInternalsDynamic }); } items.Add(new ListViewItem(new string[] { "Max table entries", header.MaxTableEntries.ToString("#,##0") }) { Group = GroupInternalsDynamic }); items.Add(new ListViewItem(new string[] { "Block size", string.Format(CultureInfo.CurrentCulture, "{0} ({1:#,##0} bytes)", BinaryPrefixExtensions.ToBinaryPrefixString(header.BlockSize, "B", "0"), header.BlockSize) }) { Group = GroupInternalsDynamic }); } } catch { } } mnuAttach.Enabled = string.IsNullOrEmpty(attachedDevice); mnuDetach.Enabled = !mnuAttach.Enabled; mnuAutomount.Enabled = true; mnuDrive.Enabled = true; mnuAutomount_DropDownOpening(null, null); mnuDrive_DropDownOpening(null, null); list.BeginUpdate(); list.Items.Clear(); list.Groups.Clear(); list.Groups.Add(GroupFileSystem); list.Groups.Add(GroupDetails); list.Groups.Add(GroupInternals); list.Groups.Add(GroupInternalsDynamic); foreach (var iItem in items) { list.Items.Add(iItem); } list.EndUpdate(); } } finally { this.Cursor = Cursors.Default; } this.Text = GetFileTitle(vhdFileName) + " - " + Medo.Reflection.EntryAssembly.Title; }
private bool CreateVhd() { using (var stream = new FileStream(this.FileName, FileMode.CreateNew, FileAccess.ReadWrite, FileShare.None, 1, FileOptions.WriteThrough)) { ReFS.RemoveIntegrityStream(stream.SafeFileHandle); var footer = new HardDiskFooter(); footer.BeginUpdate(); footer.CreatorApplication = VhdCreatorApplication.JosipMedvedVhdAttach; footer.CreatorVersion = Medo.Reflection.EntryAssembly.Version; footer.SetSize((UInt64)this.SizeInBytes); footer.OriginalSize = footer.CurrentSize; footer.DiskType = VhdDiskType.FixedHardDisk; footer.EndUpdate(); var lastReport = DateTime.UtcNow; byte[] buffer = new byte[Settings.WriteBufferSize]; ulong remaining = footer.CurrentSize; while (remaining > 0) { if (bgw.CancellationPending) { stream.Dispose(); File.Delete(this.FileName); return false; } ulong count = (ulong)buffer.Length; if ((ulong)count > remaining) { count = remaining; } stream.Write(buffer, 0, (int)count); remaining -= count; if (lastReport.AddSeconds(1) < DateTime.UtcNow) { bgw.ReportProgress(100 - (int)(remaining * 100 / footer.CurrentSize)); lastReport = DateTime.UtcNow; } } buffer = footer.Bytes; stream.Write(buffer, 0, buffer.Length); } return true; }
public void VhdFooter_Create3() { HardDiskFooter target = new HardDiskFooter(); target.Cookie = "conectix"; target.Features = VhdFeature.Reserved; target.FileFormatVersion = new Version(1, 0); target.DataOffset = 0xFFFFFFFFFFFFFFFF; target.TimeStamp = new DateTime(2011, 12, 6, 14, 14, 48, DateTimeKind.Utc); target.CreatorApplication = VhdCreatorApplication.MicrosoftWindows; target.CreatorVersion = new Version(6, 1); target.CreatorHostOs = VhdCreatorHostOs.Windows; target.SetSize((UInt64)107374182400); target.OriginalSize = target.CurrentSize; target.DiskType = VhdDiskType.FixedHardDisk; target.UniqueId = new Guid("b7afc1bd-aee1-47ac-b7f2-8bc5269f0af2"); target.SavedState = false; Assert.AreEqual(51400, target.DiskGeometryCylinders); Assert.AreEqual(16, target.DiskGeometryHeads); Assert.AreEqual(255, target.DiskGeometrySectors); Assert.AreEqual(target.CurrentSize, target.OriginalSize); Assert.AreEqual("63-6F-6E-65-63-74-69-78-00-00-00-02-00-01-00-00-FF-FF-FF-FF-FF-FF-FF-FF-16-70-DF-D8-77-69-6E-20-00-06-00-01-57-69-32-6B-00-00-00-19-00-00-00-00-00-00-00-19-00-00-00-00-C8-C8-10-FF-00-00-00-02-FF-FF-E2-A5-BD-C1-AF-B7-E1-AE-AC-47-B7-F2-8B-C5-26-9F-0A-F2-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00", BitConverter.ToString(target.Bytes)); }
public void VhdFooter_ParseInvalid1() { byte[] bytes = GetBytesFromHex("63-6F-6E-65-63-74-69-78-00-00-00-02-00-01-00-00-00-00-00-00-00-00-02-00-16-98-8B-19-77-69-6E-20-00-06-00-01-57-69-32-6B-00-00-00-EE-2F-8D-30-00-00-00-00-EE-2F-8D-30-00-FF-FF-10-FF-00-00-00-03-FF-FF-E8-44-7D-D8-77-50-FA-9B-A6-42-90-33-C3-97-96-A6-9A-E5-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-01"); HardDiskFooter target = new HardDiskFooter(bytes); Assert.AreEqual("conectix", target.Cookie); Assert.AreEqual(VhdFeature.Reserved, target.Features); Assert.AreEqual(new Version(1, 0), target.FileFormatVersion); Assert.AreEqual((UInt64)512, target.DataOffset); Assert.AreEqual(new DateTime(2012, 1, 5, 16, 23, 53, DateTimeKind.Utc), target.TimeStamp); Assert.AreEqual(VhdCreatorApplication.MicrosoftWindows, target.CreatorApplication); Assert.AreEqual(new Version(6, 1), target.CreatorVersion); Assert.AreEqual(VhdCreatorHostOs.Windows, target.CreatorHostOs); Assert.AreEqual((UInt64)1022999998464, target.OriginalSize); Assert.AreEqual((UInt64)1022999998464, target.CurrentSize); Assert.AreEqual(65535, target.DiskGeometryCylinders); Assert.AreEqual(16, target.DiskGeometryHeads); Assert.AreEqual(255, target.DiskGeometrySectors); Assert.AreEqual(VhdDiskType.DynamicHardDisk, target.DiskType); Assert.AreEqual("FF-FF-E8-44", BitConverter.ToString(target.Checksum)); Assert.AreEqual(new Guid("5077d87d-9bfa-42a6-9033-c39796a69ae5"), target.UniqueId); Assert.AreEqual(false, target.SavedState); Assert.AreEqual(false, target.IsChecksumCorrect); }
public void VhdFooter_Parse5() { byte[] bytes = GetBytesFromHex("63-6F-6E-65-63-74-69-78-00-00-00-02-00-01-00-00-00-00-00-00-00-00-02-00-14-DB-F4-2D-64-32-76-00-00-01-00-00-57-69-32-6B-00-00-00-25-43-3D-60-00-00-00-00-25-43-3D-60-00-FF-FF-10-FF-00-00-00-03-FF-FF-EA-E4-52-1F-CD-53-39-A4-E5-4B-92-F2-88-99-48-B7-BC-27-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"); HardDiskFooter target = new HardDiskFooter(bytes); Assert.AreEqual("conectix", target.Cookie); Assert.AreEqual(VhdFeature.Reserved, target.Features); Assert.AreEqual(new Version(1, 0), target.FileFormatVersion); Assert.AreEqual((UInt64)512, target.DataOffset); Assert.AreEqual(new DateTime(2011, 2, 2, 10, 53, 33, DateTimeKind.Utc), target.TimeStamp); Assert.AreEqual(VhdCreatorApplication.MicrosoftSysinternalsDisk2Vhd, target.CreatorApplication); Assert.AreEqual(new Version(1, 0), target.CreatorVersion); Assert.AreEqual(VhdCreatorHostOs.Windows, target.CreatorHostOs); Assert.AreEqual((UInt64)160041885696, target.OriginalSize); Assert.AreEqual((UInt64)160041885696, target.CurrentSize); Assert.AreEqual(65535, target.DiskGeometryCylinders); Assert.AreEqual(16, target.DiskGeometryHeads); Assert.AreEqual(255, target.DiskGeometrySectors); Assert.AreEqual(VhdDiskType.DynamicHardDisk, target.DiskType); Assert.AreEqual("FF-FF-EA-E4", BitConverter.ToString(target.Checksum)); Assert.AreEqual(new Guid("53cd1f52-a439-4be5-92f2-889948b7bc27"), target.UniqueId); Assert.AreEqual(false, target.SavedState); Assert.AreEqual(true, target.IsChecksumCorrect); }
public void VhdFooter_Parse4() { byte[] bytes = GetBytesFromHex("63-6F-6E-65-63-74-69-78-00-00-00-02-00-01-00-00-00-00-00-00-00-00-02-00-16-7B-95-F6-76-62-6F-78-00-04-00-01-57-69-32-6B-00-00-00-05-00-00-00-00-00-00-00-05-00-00-00-00-A2-8A-10-3F-00-00-00-03-FF-FF-EE-A0-D1-AA-42-85-60-1B-FE-44-88-05-14-7A-D1-88-B5-10-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"); HardDiskFooter target = new HardDiskFooter(bytes); Assert.AreEqual("conectix", target.Cookie); Assert.AreEqual(VhdFeature.Reserved, target.Features); Assert.AreEqual(new Version(1, 0), target.FileFormatVersion); Assert.AreEqual((UInt64)512, target.DataOffset); Assert.AreEqual(new DateTime(2011, 12, 14, 17, 14, 30, DateTimeKind.Utc), target.TimeStamp); Assert.AreEqual(VhdCreatorApplication.OracleVirtualBox, target.CreatorApplication); Assert.AreEqual(new Version(4, 1), target.CreatorVersion); Assert.AreEqual(VhdCreatorHostOs.Windows, target.CreatorHostOs); Assert.AreEqual((UInt64)21474836480, target.OriginalSize); Assert.AreEqual((UInt64)21474836480, target.CurrentSize); Assert.AreEqual(41610, target.DiskGeometryCylinders); Assert.AreEqual(16, target.DiskGeometryHeads); Assert.AreEqual(63, target.DiskGeometrySectors); Assert.AreEqual(VhdDiskType.DynamicHardDisk, target.DiskType); Assert.AreEqual("FF-FF-EE-A0", BitConverter.ToString(target.Checksum)); Assert.AreEqual(new Guid("8542aad1-1b60-44fe-8805-147ad188b510"), target.UniqueId); Assert.AreEqual(false, target.SavedState); Assert.AreEqual(true, target.IsChecksumCorrect); }
public void VhdFooter_Parse3() { byte[] bytes = GetBytesFromHex("63-6F-6E-65-63-74-69-78-00-00-00-02-00-01-00-00-FF-FF-FF-FF-FF-FF-FF-FF-16-70-DF-D8-77-69-6E-20-00-06-00-01-57-69-32-6B-00-00-00-19-00-00-00-00-00-00-00-19-00-00-00-00-C8-C8-10-FF-00-00-00-02-FF-FF-E2-A5-BD-C1-AF-B7-E1-AE-AC-47-B7-F2-8B-C5-26-9F-0A-F2-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"); HardDiskFooter target = new HardDiskFooter(bytes); Assert.AreEqual("conectix", target.Cookie); Assert.AreEqual(VhdFeature.Reserved, target.Features); Assert.AreEqual(new Version(1, 0), target.FileFormatVersion); Assert.AreEqual(0xFFFFFFFFFFFFFFFF, target.DataOffset); Assert.AreEqual(new DateTime(2011, 12, 6, 14, 14, 48, DateTimeKind.Utc), target.TimeStamp); Assert.AreEqual(VhdCreatorApplication.MicrosoftWindows, target.CreatorApplication); Assert.AreEqual(new Version(6, 1), target.CreatorVersion); Assert.AreEqual(VhdCreatorHostOs.Windows, target.CreatorHostOs); Assert.AreEqual((UInt64)107374182400, target.OriginalSize); Assert.AreEqual((UInt64)107374182400, target.CurrentSize); Assert.AreEqual(51400, target.DiskGeometryCylinders); Assert.AreEqual(16, target.DiskGeometryHeads); Assert.AreEqual(255, target.DiskGeometrySectors); Assert.AreEqual(VhdDiskType.FixedHardDisk, target.DiskType); Assert.AreEqual("FF-FF-E2-A5", BitConverter.ToString(target.Checksum)); Assert.AreEqual(new Guid("b7afc1bd-aee1-47ac-b7f2-8bc5269f0af2"), target.UniqueId); Assert.AreEqual(false, target.SavedState); Assert.AreEqual(true, target.IsChecksumCorrect); }
public void VhdFooter_Parse2() { byte[] bytes = GetBytesFromHex("63-6F-6E-65-63-74-69-78-00-00-00-02-00-01-00-00-FF-FF-FF-FF-FF-FF-FF-FF-15-74-6E-C8-77-69-6E-20-00-06-00-01-57-69-32-6B-00-00-00-08-00-00-00-00-00-00-00-08-00-00-00-00-40-40-10-FF-00-00-00-02-FF-FF-E5-9D-48-A5-FD-A9-74-81-23-4D-B3-89-E9-41-D2-33-7E-F7-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"); HardDiskFooter target = new HardDiskFooter(bytes); Assert.AreEqual("conectix", target.Cookie); Assert.AreEqual(VhdFeature.Reserved, target.Features); Assert.AreEqual(new Version(1, 0), target.FileFormatVersion); Assert.AreEqual((UInt64)0xFFFFFFFFFFFFFFFF, target.DataOffset); Assert.AreEqual(new DateTime(2011, 5, 29, 2, 41, 12, DateTimeKind.Utc), target.TimeStamp); Assert.AreEqual(VhdCreatorApplication.MicrosoftWindows, target.CreatorApplication); Assert.AreEqual(new Version(6, 1), target.CreatorVersion); Assert.AreEqual(VhdCreatorHostOs.Windows, target.CreatorHostOs); Assert.AreEqual((UInt64)34359738368, target.OriginalSize); Assert.AreEqual((UInt64)34359738368, target.CurrentSize); Assert.AreEqual(16448, target.DiskGeometryCylinders); Assert.AreEqual(16, target.DiskGeometryHeads); Assert.AreEqual(255, target.DiskGeometrySectors); Assert.AreEqual(VhdDiskType.FixedHardDisk, target.DiskType); Assert.AreEqual("FF-FF-E5-9D", BitConverter.ToString(target.Checksum)); Assert.AreEqual(new Guid("a9fda548-8174-4d23-b389-e941d2337ef7"), target.UniqueId); Assert.AreEqual(false, target.SavedState); Assert.AreEqual(true, target.IsChecksumCorrect); }
public void VhdFooter_Parse1() { byte[] bytes = GetBytesFromHex("63-6F-6E-65-63-74-69-78-00-00-00-02-00-01-00-00-FF-FF-FF-FF-FF-FF-FF-FF-15-DC-BD-20-77-69-6E-20-00-06-00-01-57-69-32-6B-00-00-00-00-C0-00-00-00-00-00-00-00-C0-00-00-00-18-61-10-3F-00-00-00-02-FF-FF-E5-66-3A-E3-A9-5E-DD-1D-A3-49-BD-6D-3C-D7-90-5A-B6-70-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"); HardDiskFooter target = new HardDiskFooter(bytes); Assert.AreEqual("conectix", target.Cookie); Assert.AreEqual(VhdFeature.Reserved, target.Features); Assert.AreEqual(new Version(1, 0), target.FileFormatVersion); Assert.AreEqual((UInt64)0xFFFFFFFFFFFFFFFF, target.DataOffset); Assert.AreEqual(new DateTime(2011, 8, 16, 5, 31, 12, DateTimeKind.Utc), target.TimeStamp); Assert.AreEqual(VhdCreatorApplication.MicrosoftWindows, target.CreatorApplication); Assert.AreEqual(new Version(6, 1), target.CreatorVersion); Assert.AreEqual(VhdCreatorHostOs.Windows, target.CreatorHostOs); Assert.AreEqual((UInt64)3221225472, target.OriginalSize); Assert.AreEqual((UInt64)3221225472, target.CurrentSize); Assert.AreEqual(6241, target.DiskGeometryCylinders); Assert.AreEqual(16, target.DiskGeometryHeads); Assert.AreEqual(63, target.DiskGeometrySectors); Assert.AreEqual(VhdDiskType.FixedHardDisk, target.DiskType); Assert.AreEqual("FF-FF-E5-66", BitConverter.ToString(target.Checksum)); Assert.AreEqual(new Guid("5ea9e33a-1ddd-49a3-bd6d-3cd7905ab670"), target.UniqueId); Assert.AreEqual(false, target.SavedState); Assert.AreEqual(true, target.IsChecksumCorrect); }
public void VhdFooter_CreateEmpty() { HardDiskFooter target = new HardDiskFooter(); Assert.AreEqual("conectix", target.Cookie); Assert.AreEqual(VhdFeature.NoFeaturesEnabled, target.Features); Assert.AreEqual(new Version(1, 0), target.FileFormatVersion); Assert.AreEqual((UInt64)0xFFFFFFFFFFFFFFFF, target.DataOffset); Assert.AreEqual(VhdCreatorApplication.None, target.CreatorApplication); Assert.AreEqual(new Version(0, 0), target.CreatorVersion); Assert.AreEqual(VhdCreatorHostOs.Windows, target.CreatorHostOs); Assert.AreEqual((UInt64)0, target.OriginalSize); Assert.AreEqual((UInt64)0, target.CurrentSize); Assert.AreEqual(0, target.DiskGeometryCylinders); Assert.AreEqual(0, target.DiskGeometryHeads); Assert.AreEqual(0, target.DiskGeometrySectors); Assert.AreEqual(VhdDiskType.None, target.DiskType); Assert.AreNotEqual(Guid.Empty, target.UniqueId); Assert.AreEqual(false, target.SavedState); Assert.AreEqual(true, target.IsChecksumCorrect); }
public void VhdFooter_Create6() { HardDiskFooter target = new HardDiskFooter(); target.Cookie = "conectix"; target.Features = VhdFeature.Reserved; target.FileFormatVersion = new Version(1, 0); target.DataOffset = (UInt64)512; target.TimeStamp = new DateTime(2012, 1, 5, 16, 23, 53, DateTimeKind.Utc); target.CreatorApplication = VhdCreatorApplication.MicrosoftWindows; target.CreatorVersion = new Version(6, 1); target.CreatorHostOs = VhdCreatorHostOs.Windows; target.SetSize((UInt64)1022999998464); target.OriginalSize = target.CurrentSize; target.DiskType = VhdDiskType.DynamicHardDisk; target.UniqueId = new Guid("5077d87d-9bfa-42a6-9033-c39796a69ae5"); target.SavedState = false; Assert.AreEqual(65535, target.DiskGeometryCylinders); Assert.AreEqual(16, target.DiskGeometryHeads); Assert.AreEqual(255, target.DiskGeometrySectors); Assert.AreEqual(target.CurrentSize, target.OriginalSize); Assert.AreEqual("63-6F-6E-65-63-74-69-78-00-00-00-02-00-01-00-00-00-00-00-00-00-00-02-00-16-98-8B-19-77-69-6E-20-00-06-00-01-57-69-32-6B-00-00-00-EE-2F-8D-30-00-00-00-00-EE-2F-8D-30-00-FF-FF-10-FF-00-00-00-03-FF-FF-E8-44-7D-D8-77-50-FA-9B-A6-42-90-33-C3-97-96-A6-9A-E5-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00", BitConverter.ToString(target.Bytes)); }
public void VhdFooter_Create5() { HardDiskFooter target = new HardDiskFooter(); target.Cookie = "conectix"; target.Features = VhdFeature.Reserved; target.FileFormatVersion = new Version(1, 0); target.DataOffset = (UInt64)512; target.TimeStamp = new DateTime(2011, 2, 2, 10, 53, 33, DateTimeKind.Utc); target.CreatorApplication = VhdCreatorApplication.MicrosoftSysinternalsDisk2Vhd; target.CreatorVersion = new Version(1, 0); target.CreatorHostOs = VhdCreatorHostOs.Windows; target.SetSize((UInt64)160041885696); target.OriginalSize = target.CurrentSize; target.DiskType = VhdDiskType.DynamicHardDisk; target.UniqueId = new Guid("53cd1f52-a439-4be5-92f2-889948b7bc27"); target.SavedState = false; Assert.AreEqual(65535, target.DiskGeometryCylinders); Assert.AreEqual(16, target.DiskGeometryHeads); Assert.AreEqual(255, target.DiskGeometrySectors); Assert.AreEqual(target.CurrentSize, target.OriginalSize); Assert.AreEqual("63-6F-6E-65-63-74-69-78-00-00-00-02-00-01-00-00-00-00-00-00-00-00-02-00-14-DB-F4-2D-64-32-76-00-00-01-00-00-57-69-32-6B-00-00-00-25-43-3D-60-00-00-00-00-25-43-3D-60-00-FF-FF-10-FF-00-00-00-03-FF-FF-EA-E4-52-1F-CD-53-39-A4-E5-4B-92-F2-88-99-48-B7-BC-27-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00", BitConverter.ToString(target.Bytes)); }
public void VhdFooter_Create4() { HardDiskFooter target = new HardDiskFooter(); target.Cookie = "conectix"; target.Features = VhdFeature.Reserved; target.FileFormatVersion = new Version(1, 0); target.DataOffset = (UInt64)512; target.TimeStamp = new DateTime(2011, 12, 14, 17, 14, 30, DateTimeKind.Utc); target.CreatorApplication = VhdCreatorApplication.OracleVirtualBox; target.CreatorVersion = new Version(4, 1); target.CreatorHostOs = VhdCreatorHostOs.Windows; target.SetSize((UInt64)21474836480); target.OriginalSize = target.CurrentSize; target.DiskType = VhdDiskType.DynamicHardDisk; target.UniqueId = new Guid("8542aad1-1b60-44fe-8805-147ad188b510"); target.SavedState = false; Assert.AreEqual(41610, target.DiskGeometryCylinders); Assert.AreEqual(16, target.DiskGeometryHeads); Assert.AreEqual(63, target.DiskGeometrySectors); Assert.AreEqual(target.CurrentSize, target.OriginalSize); Assert.AreEqual("63-6F-6E-65-63-74-69-78-00-00-00-02-00-01-00-00-00-00-00-00-00-00-02-00-16-7B-95-F6-76-62-6F-78-00-04-00-01-57-69-32-6B-00-00-00-05-00-00-00-00-00-00-00-05-00-00-00-00-A2-8A-10-3F-00-00-00-03-FF-FF-EE-A0-D1-AA-42-85-60-1B-FE-44-88-05-14-7A-D1-88-B5-10-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00", BitConverter.ToString(target.Bytes)); }