private void Initialize() { _fileStream.Position = 0; FileHeader fileHeader = Utilities.ReadStruct <FileHeader>(_fileStream); if (!fileHeader.IsValid) { throw new IOException("Invalid VHDX file - file signature mismatch"); } ReadHeaders(); if (_header.LogGuid != Guid.Empty) { throw new NotSupportedException("Detected VHDX file with replay log - not yet supported"); } ReadRegionTable(); ReadMetadata(); Stream batStream = OpenRegion(RegionTable.BatGuid); _bat = new BlockAllocationTable(batStream, _metadata); }
public ContentStream(SparseStream fileStream, BlockAllocationTable bat, long length, SparseStream parentStream, Ownership ownsParent) { _fileStream = fileStream; _bat = bat; _length = length; _parentStream = parentStream; _ownsParent = ownsParent; }
private void Initialize() { _fileStream.Position = 0; FileHeader fileHeader = Utilities.ReadStruct<FileHeader>(_fileStream); if (!fileHeader.IsValid) { throw new IOException("Invalid VHDX file - file signature mismatch"); } ReadHeaders(); if (_header.LogGuid != Guid.Empty) { throw new NotSupportedException("Detected VHDX file with replay log - not yet supported"); } ReadRegionTable(); ReadMetadata(); Stream batStream = OpenRegion(RegionTable.BatGuid); _bat = new BlockAllocationTable(batStream, _metadata); }