/// <summary> /// Opens a backup file. /// </summary> public void Open(string Filename) { mStream = new CBackupStream(Filename); mIncrement = mStream.BaseStream.Length / 100; mLastPos = 0; mCancel = false; }
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); }
public CCorruptObjectDescriptorBlock(CBackupStream Reader) { base.ReadData(Reader); CFilAttributes = (ECFilAttributes)Reader.ReadUInt32(); Reserved = Reader.ReadUInt64(); StreamOffset = Reader.ReadUInt64(); CorrupStreamNumber = Reader.ReadUInt16(); base.ReadStreams(Reader); }
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); }
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); }
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); }
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); }
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); }
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(); }
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(); }
/// <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 != "")); }
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); }
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); }
/// <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(); }
public CDescriptorBlock(CBackupStream Reader) { ReadData(Reader); }
/// <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(); }
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); }
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); }
public CEndOfTapeMarkerDescriptorBlock(CBackupStream Reader) { base.ReadData(Reader); LastESETPBA = Reader.ReadUInt64(); base.ReadStreams(Reader); }
public CEndOfPadSetDescriptorBlock(CBackupStream Reader) { base.ReadData(Reader); base.ReadStreams(Reader); }