Beispiel #1
0
        private void ReadHeaders()
        {
            _activeHeader = 0;

            _fileStream.Position = 64 * Sizes.OneKiB;
            VhdxHeader vhdxHeader1 = Utilities.ReadStruct <VhdxHeader>(_fileStream);

            if (vhdxHeader1.IsValid)
            {
                _header       = vhdxHeader1;
                _activeHeader = 1;
            }

            _fileStream.Position = 128 * Sizes.OneKiB;
            VhdxHeader vhdxHeader2 = Utilities.ReadStruct <VhdxHeader>(_fileStream);

            if (vhdxHeader2.IsValid && (_activeHeader == 0 || _header.SequenceNumber < vhdxHeader2.SequenceNumber))
            {
                _header       = vhdxHeader2;
                _activeHeader = 2;
            }

            if (_activeHeader == 0)
            {
                throw new IOException("Invalid VHDX file - no valid VHDX headers found");
            }
        }
        private void ReadHeaders()
        {
            _activeHeader = 0;

            _fileStream.Position = 64 * Sizes.OneKiB;
            VhdxHeader vhdxHeader1 = Utilities.ReadStruct<VhdxHeader>(_fileStream);
            if (vhdxHeader1.IsValid)
            {
                _header = vhdxHeader1;
                _activeHeader = 1;

            }

            _fileStream.Position = 128 * Sizes.OneKiB;
            VhdxHeader vhdxHeader2 = Utilities.ReadStruct<VhdxHeader>(_fileStream);
            if (vhdxHeader2.IsValid && (_activeHeader == 0 || _header.SequenceNumber < vhdxHeader2.SequenceNumber))
            {
                _header = vhdxHeader2;
                _activeHeader = 2;
            }

            if (_activeHeader == 0)
            {
                throw new IOException("Invalid VHDX file - no valid VHDX headers found");
            }
        }