Пример #1
0
        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);
        }
Пример #2
0
 public ContentStream(SparseStream fileStream, BlockAllocationTable bat, long length, SparseStream parentStream, Ownership ownsParent)
 {
     _fileStream = fileStream;
     _bat = bat;
     _length = length;
     _parentStream = parentStream;
     _ownsParent = ownsParent;
 }
Пример #3
0
        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);
        }