コード例 #1
0
ファイル: CBackupReader.cs プロジェクト: ExpLife0011/hf-2012
 /// <summary>
 /// Opens a backup file.
 /// </summary>
 public void Open(string Filename)
 {
     mStream    = new CBackupStream(Filename);
     mIncrement = mStream.BaseStream.Length / 100;
     mLastPos   = 0;
     mCancel    = false;
 }
コード例 #2
0
ファイル: CDataStream.cs プロジェクト: 340211173/hf-2011
 public CDataStream(CBackupStream Reader)
 {
     Header = new CStreamHeader(Reader);
     Data = Reader.ReadBytes((int)Header.StreamLength);
     // Ensure that we are on the 4 byte boundary
     long nullbytecount = (4 - (Reader.BaseStream.Position % 4)) % 4;
     Reader.BaseStream.Seek(nullbytecount, System.IO.SeekOrigin.Current);
 }
コード例 #3
0
 public CCorruptObjectDescriptorBlock(CBackupStream Reader)
 {
     base.ReadData(Reader);
     CFilAttributes     = (ECFilAttributes)Reader.ReadUInt32();
     Reserved           = Reader.ReadUInt64();
     StreamOffset       = Reader.ReadUInt64();
     CorrupStreamNumber = Reader.ReadUInt16();
     base.ReadStreams(Reader);
 }
コード例 #4
0
ファイル: CDataStream.cs プロジェクト: ExpLife0011/hf-2012
        public CDataStream(CBackupStream Reader)
        {
            Header = new CStreamHeader(Reader);
            Data   = Reader.ReadBytes((int)Header.StreamLength);
            // Ensure that we are on the 4 byte boundary
            long nullbytecount = (4 - (Reader.BaseStream.Position % 4)) % 4;

            Reader.BaseStream.Seek(nullbytecount, System.IO.SeekOrigin.Current);
        }
コード例 #5
0
 public CVolumeDescriptorBlock(CBackupStream Reader)
 {
     base.ReadData(Reader);
     VOLBAttributes = (EVOLBAttributes)Reader.ReadUInt32();
     DeviceName     = Reader.ReadString(StartPosition, StringType);
     VolumeName     = Reader.ReadString(StartPosition, StringType);
     MachineName    = Reader.ReadString(StartPosition, StringType);
     MediaWriteDate = Reader.ReadDate();
     base.ReadStreams(Reader);
 }
コード例 #6
0
 public CEndOfDataSetDescriptorBlock(CBackupStream Reader)
 {
     base.ReadData(Reader);
     ESETAttributes         = (ESSETAttributes)Reader.ReadUInt32();
     NumberOfCorruptFiles   = Reader.ReadUInt32();
     ReservedforMBC1        = Reader.ReadUInt64();
     ReservedforMBC2        = Reader.ReadUInt64();
     FDDMediaSequenceNumber = Reader.ReadUInt16();
     DataSetNumber          = Reader.ReadUInt16();
     MediaWriteDate         = Reader.ReadDate();
     base.ReadStreams(Reader);
 }
コード例 #7
0
 public CDirectoryDescriptorBlock(CBackupStream Reader)
 {
     base.ReadData(Reader);
     DIRBAttributes       = (EDIRBAttributes)Reader.ReadUInt32();
     LastModificationDate = Reader.ReadDate();
     CreationDate         = Reader.ReadDate();
     BackupDate           = Reader.ReadDate();
     LastAccessDate       = Reader.ReadDate();
     DirectoryID          = Reader.ReadUInt32();
     // MTF uses '\0' as the path seperator. Replace them with '\\'
     DirectoryName = Reader.ReadString(StartPosition, StringType).Replace('\0', '\\');
     base.ReadStreams(Reader);
 }
コード例 #8
0
 public CFileDescriptorBlock(CBackupStream Reader)
 {
     base.ReadData(Reader);
     FileAttributes       = (EFileAttributes)Reader.ReadUInt32();
     LastModificationDate = Reader.ReadDate();
     CreationDate         = Reader.ReadDate();
     BackupDate           = Reader.ReadDate();
     LastAccessDate       = Reader.ReadDate();
     DirectoryID          = Reader.ReadUInt32();
     FileID   = Reader.ReadUInt32();
     FileName = Reader.ReadString(StartPosition, StringType);
     base.ReadStreams(Reader);
 }
コード例 #9
0
 public CSoftFilemarkDescriptorBlock(CBackupStream Reader)
 {
     base.ReadData(Reader);
     NumberOfFilemarkEntries     = Reader.ReadUInt32();
     FilemarkEntriesUsed         = Reader.ReadUInt32();
     PBAofPreviousFilemarksArray = new uint[FilemarkEntriesUsed];
     for (uint i = 0; i < NumberOfFilemarkEntries; i++)
     {
         uint val = Reader.ReadUInt32();
         if (i < FilemarkEntriesUsed)
         {
             PBAofPreviousFilemarksArray.SetValue(val, i);
         }
     }
     //base.ReadStreams(Reader);
 }
コード例 #10
0
ファイル: CDataStream.cs プロジェクト: ExpLife0011/hf-2012
            public ushort Checksum; // Stream data follow immediately after the Checksum field.

            public CStreamHeader(CBackupStream Reader)
            {
                // Check for EOF
                if (Reader.BaseStream.Position + 22 >= Reader.BaseStream.Length)
                {
                    StreamID = "";
                    return;
                }

                StreamID = Reader.ReadFixedSizeString(4, EStringType.ANSI);

                StreamFileSystemAttributes  = (EStreamFileSystemAttributes)Reader.ReadUInt16();
                StreamMediaFormatAttributes = (EStreamMediaFormatAttributes)Reader.ReadUInt16();
                StreamLength             = Reader.ReadUInt64();
                DataEncryptionAlgorithm  = Reader.ReadUInt16();
                DataCompressionAlgorithm = Reader.ReadUInt16();
                Checksum = Reader.ReadUInt16();
            }
コード例 #11
0
ファイル: CDataStream.cs プロジェクト: 340211173/hf-2011
            public CStreamHeader(CBackupStream Reader)
            {
                // Check for EOF
                if (Reader.BaseStream.Position + 22 >= Reader.BaseStream.Length)
                {
                    StreamID = "";
                    return;
                }

                StreamID = Reader.ReadFixedSizeString(4, EStringType.ANSI);

                StreamFileSystemAttributes = (EStreamFileSystemAttributes)Reader.ReadUInt16();
                StreamMediaFormatAttributes = (EStreamMediaFormatAttributes)Reader.ReadUInt16();
                StreamLength = Reader.ReadUInt64();
                DataEncryptionAlgorithm = Reader.ReadUInt16();
                DataCompressionAlgorithm = Reader.ReadUInt16();
                Checksum = Reader.ReadUInt16();
            }
コード例 #12
0
        /// <summary>
        /// Read streams following this block.
        /// </summary>
        /// <param name="Reader"></param>
        protected void ReadStreams(CBackupStream Reader)
        {
            // Move to stream
            long off = OffsetToFirstEvent + StartPosition;
            // Make sure we are at a 4 byte boundary
            long nullbytecount = (4 - (off % 4)) % 4;

            Reader.BaseStream.Seek(off + nullbytecount, System.IO.SeekOrigin.Begin);
            string streamtype = "";

            do
            {
                // Read next stream
                CDataStream stream = new CDataStream(Reader);
                streamtype = stream.Header.StreamID;
                Streams.Add(stream);
            } while ((streamtype != "SPAD") && (streamtype != ""));
        }
コード例 #13
0
 public CTapeHeaderDescriptorBlock(CBackupStream Reader)
 {
     base.ReadData(Reader);
     MediaFamilyID               = Reader.ReadUInt32();
     TapeAttributes              = (ETapeAttributes)Reader.ReadUInt32();
     MediaSequenceNumber         = Reader.ReadUInt16();
     PasswordEncryptionAlgorithm = Reader.ReadUInt16();
     SoftFilemarkBlockSize       = Reader.ReadUInt16();
     MediaBasedCatalogType       = (EMediaBasedCatalogType)Reader.ReadUInt16();
     MediaName              = Reader.ReadString(StartPosition, StringType);
     MediaDescription       = Reader.ReadString(StartPosition, StringType);
     MediaPassword          = Reader.ReadString(StartPosition, StringType);
     SoftwareName           = Reader.ReadString(StartPosition, StringType);
     FormatLogicalBlockSize = Reader.ReadUInt16();
     SoftwareVendorID       = Reader.ReadUInt16();
     MediaDate              = Reader.ReadDate();
     MTFMajorVersion        = Reader.ReadByte();
     base.ReadStreams(Reader);
 }
コード例 #14
0
 public CStartOfDataSetDescriptorBlock(CBackupStream Reader)
 {
     base.ReadData(Reader);
     SSETAttributes = (ESSETAttributes)Reader.ReadUInt32();
     PasswordEncryptionAlgorithm  = Reader.ReadUInt16();
     SoftwareCompressionAlgorithm = Reader.ReadUInt16();
     SoftwareVendorID             = Reader.ReadUInt16();
     DataSetNumber        = Reader.ReadUInt16();
     DataSetName          = Reader.ReadString(StartPosition, StringType);
     DataSetDescription   = Reader.ReadString(StartPosition, StringType);
     DataSetPassword      = Reader.ReadString(StartPosition, StringType);
     UserName             = Reader.ReadString(StartPosition, StringType);
     PhysicalBlockAddress = Reader.ReadUInt64();
     MediaWriteDate       = Reader.ReadDate();
     SoftwareMajorVersion = Reader.ReadByte();
     SoftwareMinorVersion = Reader.ReadByte();
     MTFTimeZone          = Reader.ReadSByte();
     MTFMinorVersion      = Reader.ReadByte();
     MediaCatalogVersion  = Reader.ReadByte();
     base.ReadStreams(Reader);
 }
コード例 #15
0
        /// <summary>
        /// Read block header.
        /// </summary>
        protected void ReadData(CBackupStream Reader)
        {
            StartPosition = Reader.BaseStream.Position;
            Streams       = new System.Collections.Generic.List <CDataStream>();

            BlockType          = (EBlockType)Reader.ReadUInt32();
            Attributes         = (EBlockAttributes)Reader.ReadUInt32();
            OffsetToFirstEvent = Reader.ReadUInt16();
            OSID                 = (EOSID)Reader.ReadByte();
            OSVersion            = Reader.ReadByte();
            DisplayableSize      = Reader.ReadUInt64();
            FormatLogicalAddress = Reader.ReadUInt64();
            ReservedMBC          = Reader.ReadUInt16();
            Reserved1            = Reader.ReadUInt16();
            Reserved2            = Reader.ReadUInt16();
            Reserved3            = Reader.ReadUInt16();
            ControlBlock         = Reader.ReadUInt32();
            Reserved4            = Reader.ReadUInt32();
            OsSpecificData       = Reader.ReadOsSpecificData(StartPosition, OSID, OSVersion, BlockType);
            StringType           = (EStringType)Reader.ReadByte();
            Reserved5            = Reader.ReadByte();
            HeaderChecksum       = Reader.ReadUInt16();
        }
コード例 #16
0
ファイル: CDescriptorBlock.cs プロジェクト: 340211173/hf-2011
 public CDescriptorBlock(CBackupStream Reader)
 {
     ReadData(Reader);
 }
コード例 #17
0
ファイル: CDescriptorBlock.cs プロジェクト: 340211173/hf-2011
 public CCorruptObjectDescriptorBlock(CBackupStream Reader)
 {
     base.ReadData(Reader);
     CFilAttributes = (ECFilAttributes)Reader.ReadUInt32();
     Reserved = Reader.ReadUInt64();
     StreamOffset = Reader.ReadUInt64();
     CorrupStreamNumber = Reader.ReadUInt16();
     base.ReadStreams(Reader);
 }
コード例 #18
0
ファイル: CDescriptorBlock.cs プロジェクト: 340211173/hf-2011
        /// <summary>
        /// Read streams following this block.
        /// </summary>
        /// <param name="Reader"></param>
        protected void ReadStreams(CBackupStream Reader)
        {
            // Move to stream
            long off = OffsetToFirstEvent + StartPosition;
            // Make sure we are at a 4 byte boundary
            long nullbytecount = (4 - (off % 4)) % 4;

            Reader.BaseStream.Seek(off + nullbytecount, System.IO.SeekOrigin.Begin);
            string streamtype = "";

            do
            {
                // Read next stream
                CDataStream stream = new CDataStream(Reader);
                streamtype = stream.Header.StreamID;
                Streams.Add(stream);
            } while ((streamtype != "SPAD") && (streamtype != ""));
        }
コード例 #19
0
ファイル: CDescriptorBlock.cs プロジェクト: 340211173/hf-2011
        /// <summary>
        /// Read block header.
        /// </summary>
        protected void ReadData(CBackupStream Reader)
        {
            StartPosition = Reader.BaseStream.Position;
            Streams = new System.Collections.Generic.List<CDataStream>();

            BlockType = (EBlockType)Reader.ReadUInt32();
            Attributes = (EBlockAttributes)Reader.ReadUInt32();
            OffsetToFirstEvent = Reader.ReadUInt16();
            OSID = (EOSID)Reader.ReadByte();
            OSVersion = Reader.ReadByte();
            DisplayableSize = Reader.ReadUInt64();
            FormatLogicalAddress = Reader.ReadUInt64();
            ReservedMBC = Reader.ReadUInt16();
            Reserved1 = Reader.ReadUInt16();
            Reserved2 = Reader.ReadUInt16();
            Reserved3 = Reader.ReadUInt16();
            ControlBlock = Reader.ReadUInt32();
            Reserved4 = Reader.ReadUInt32();
            OsSpecificData = Reader.ReadOsSpecificData(StartPosition, OSID, OSVersion, BlockType);
            StringType = (EStringType)Reader.ReadByte();
            Reserved5 = Reader.ReadByte();
            HeaderChecksum = Reader.ReadUInt16();
        }
コード例 #20
0
ファイル: CDescriptorBlock.cs プロジェクト: 340211173/hf-2011
 public CFileDescriptorBlock(CBackupStream Reader)
 {
     base.ReadData(Reader);
     FileAttributes = (EFileAttributes)Reader.ReadUInt32();
     LastModificationDate = Reader.ReadDate();
     CreationDate = Reader.ReadDate();
     BackupDate = Reader.ReadDate();
     LastAccessDate = Reader.ReadDate();
     DirectoryID = Reader.ReadUInt32();
     FileID = Reader.ReadUInt32();
     FileName = Reader.ReadString(StartPosition, StringType);
     base.ReadStreams(Reader);
 }
コード例 #21
0
ファイル: CDescriptorBlock.cs プロジェクト: 340211173/hf-2011
 public CDirectoryDescriptorBlock(CBackupStream Reader)
 {
     base.ReadData(Reader);
     DIRBAttributes = (EDIRBAttributes)Reader.ReadUInt32();
     LastModificationDate = Reader.ReadDate();
     CreationDate = Reader.ReadDate();
     BackupDate = Reader.ReadDate();
     LastAccessDate = Reader.ReadDate();
     DirectoryID = Reader.ReadUInt32();
     // MTF uses '\0' as the path seperator. Replace them with '\\'
     DirectoryName = Reader.ReadString(StartPosition, StringType).Replace('\0','\\');
     base.ReadStreams(Reader);
 }
コード例 #22
0
ファイル: CDescriptorBlock.cs プロジェクト: 340211173/hf-2011
 public CSoftFilemarkDescriptorBlock(CBackupStream Reader)
 {
     base.ReadData(Reader);
     NumberOfFilemarkEntries = Reader.ReadUInt32();
     FilemarkEntriesUsed = Reader.ReadUInt32();
     PBAofPreviousFilemarksArray = new uint[FilemarkEntriesUsed];
     for (uint i = 0; i < NumberOfFilemarkEntries; i++)
     {
         uint val = Reader.ReadUInt32();
         if (i < FilemarkEntriesUsed)
             PBAofPreviousFilemarksArray.SetValue(val, i);
     }
     //base.ReadStreams(Reader);
 }
コード例 #23
0
 public CEndOfTapeMarkerDescriptorBlock(CBackupStream Reader)
 {
     base.ReadData(Reader);
     LastESETPBA = Reader.ReadUInt64();
     base.ReadStreams(Reader);
 }
コード例 #24
0
ファイル: CDescriptorBlock.cs プロジェクト: 340211173/hf-2011
 public CEndOfTapeMarkerDescriptorBlock(CBackupStream Reader)
 {
     base.ReadData(Reader);
     LastESETPBA = Reader.ReadUInt64();
     base.ReadStreams(Reader);
 }
コード例 #25
0
 public CDescriptorBlock(CBackupStream Reader)
 {
     ReadData(Reader);
 }
コード例 #26
0
 public CEndOfPadSetDescriptorBlock(CBackupStream Reader)
 {
     base.ReadData(Reader);
     base.ReadStreams(Reader);
 }
コード例 #27
0
ファイル: CDescriptorBlock.cs プロジェクト: 340211173/hf-2011
 public CStartOfDataSetDescriptorBlock(CBackupStream Reader)
 {
     base.ReadData(Reader);
     SSETAttributes = (ESSETAttributes)Reader.ReadUInt32();
     PasswordEncryptionAlgorithm = Reader.ReadUInt16();
     SoftwareCompressionAlgorithm = Reader.ReadUInt16();
     SoftwareVendorID = Reader.ReadUInt16();
     DataSetNumber = Reader.ReadUInt16();
     DataSetName = Reader.ReadString(StartPosition, StringType);
     DataSetDescription = Reader.ReadString(StartPosition, StringType);
     DataSetPassword = Reader.ReadString(StartPosition, StringType);
     UserName = Reader.ReadString(StartPosition, StringType);
     PhysicalBlockAddress = Reader.ReadUInt64();
     MediaWriteDate = Reader.ReadDate();
     SoftwareMajorVersion = Reader.ReadByte();
     SoftwareMinorVersion = Reader.ReadByte();
     MTFTimeZone = Reader.ReadSByte();
     MTFMinorVersion = Reader.ReadByte();
     MediaCatalogVersion = Reader.ReadByte();
     base.ReadStreams(Reader);
 }
コード例 #28
0
ファイル: CDescriptorBlock.cs プロジェクト: 340211173/hf-2011
 public CEndOfDataSetDescriptorBlock(CBackupStream Reader)
 {
     base.ReadData(Reader);
     ESETAttributes = (ESSETAttributes)Reader.ReadUInt32();
     NumberOfCorruptFiles = Reader.ReadUInt32();
     ReservedforMBC1 = Reader.ReadUInt64();
     ReservedforMBC2 = Reader.ReadUInt64();
     FDDMediaSequenceNumber = Reader.ReadUInt16();
     DataSetNumber = Reader.ReadUInt16();
     MediaWriteDate = Reader.ReadDate();
     base.ReadStreams(Reader);
 }
コード例 #29
0
ファイル: CDescriptorBlock.cs プロジェクト: 340211173/hf-2011
 public CTapeHeaderDescriptorBlock(CBackupStream Reader)
 {
     base.ReadData(Reader);
     MediaFamilyID = Reader.ReadUInt32();
     TapeAttributes = (ETapeAttributes)Reader.ReadUInt32();
     MediaSequenceNumber = Reader.ReadUInt16();
     PasswordEncryptionAlgorithm = Reader.ReadUInt16();
     SoftFilemarkBlockSize = Reader.ReadUInt16();
     MediaBasedCatalogType = (EMediaBasedCatalogType)Reader.ReadUInt16();
     MediaName = Reader.ReadString(StartPosition, StringType);
     MediaDescription = Reader.ReadString(StartPosition, StringType);
     MediaPassword = Reader.ReadString(StartPosition, StringType);
     SoftwareName = Reader.ReadString(StartPosition, StringType);
     FormatLogicalBlockSize = Reader.ReadUInt16();
     SoftwareVendorID = Reader.ReadUInt16();
     MediaDate = Reader.ReadDate();
     MTFMajorVersion = Reader.ReadByte();
     base.ReadStreams(Reader);
 }
コード例 #30
0
ファイル: CDescriptorBlock.cs プロジェクト: 340211173/hf-2011
 public CVolumeDescriptorBlock(CBackupStream Reader)
 {
     base.ReadData(Reader);
     VOLBAttributes = (EVOLBAttributes)Reader.ReadUInt32();
     DeviceName = Reader.ReadString(StartPosition, StringType);
     VolumeName = Reader.ReadString(StartPosition, StringType);
     MachineName = Reader.ReadString(StartPosition, StringType);
     MediaWriteDate = Reader.ReadDate();
     base.ReadStreams(Reader);
 }
コード例 #31
0
ファイル: CBackupReader.cs プロジェクト: 340211173/hf-2011
 /// <summary>
 /// Opens a backup file.
 /// </summary>
 public void Open(string Filename)
 {
     mStream = new CBackupStream(Filename);
     mIncrement = mStream.BaseStream.Length / 100;
     mLastPos = 0;
     mCancel = false;
 }
コード例 #32
0
ファイル: CDescriptorBlock.cs プロジェクト: 340211173/hf-2011
 public CEndOfPadSetDescriptorBlock(CBackupStream Reader)
 {
     base.ReadData(Reader);
     base.ReadStreams(Reader);
 }