public RawClusterStream(INtfsContext context, CookedDataRuns cookedRuns, bool isMft) { _context = context; _cookedRuns = cookedRuns; _isMft = isMft; _fsStream = _context.RawStream; _bytesPerCluster = context.BiosParameterBlock.BytesPerCluster; }
public NonResidentDataBuffer(INtfsContext context, CookedDataRuns cookedRuns, bool isMft) { _context = context; _cookedRuns = cookedRuns; _rawStream = new RawClusterStream(_context, _cookedRuns, isMft); _activeStream = _rawStream; _bytesPerCluster = _context.BiosParameterBlock.BytesPerCluster; _ioBuffer = new byte[_bytesPerCluster]; }
private static CookedDataRuns CookRuns(NtfsAttribute attribute) { CookedDataRuns result = new CookedDataRuns(); foreach (NonResidentAttributeRecord record in attribute.Records) { if (record.StartVcn != result.NextVirtualCluster) { throw new IOException("Invalid NTFS attribute - non-contiguous data runs"); } result.Append(record.DataRuns, record); } return(result); }