public override byte[] ReadBytes(HexPosition position, long length) { CheckDisposed(); if (stream != null) { return(stream.ReadBytes(position, length)); } return(new byte[length]); }
public override void Read(IntPtr hProcess, HexPosition position, byte[] destination, long destinationIndex, long length) { if (hProcess == IntPtr.Zero) { throw new ArgumentException(); } if (position >= HexPosition.MaxEndPosition) { throw new ArgumentOutOfRangeException(nameof(position)); } if (destination == null) { throw new ArgumentNullException(nameof(destination)); } if (destinationIndex < 0) { throw new ArgumentOutOfRangeException(nameof(destinationIndex)); } if (length < 0) { throw new ArgumentOutOfRangeException(nameof(length)); } if (new HexPosition(destinationIndex) + length > destination.LongLength) { throw new ArgumentOutOfRangeException(nameof(length)); } HexSimpleBufferStream processStream = null; HexBufferStream cachedStream = null; try { processStream = hexBufferStreamFactoryService.CreateSimpleProcessStream(hProcess); cachedStream = hexBufferStreamFactoryService.CreateCached(processStream, disposeStream: false); cachedStream.ReadBytes(position, destination, destinationIndex, length); } finally { processStream?.Dispose(); cachedStream?.Dispose(); } }
public override byte[] ReadBytes(HexPosition position, long length) => stream.ReadBytes(position, length);
public override void ReadBytes(HexPosition position, byte[] destination, long destinationIndex, long length) { CheckDisposed(); stream?.ReadBytes(position, destination, destinationIndex, length); }
public override byte[] ReadBytes(HexPosition position, long length) => length == 0 ? Array.Empty <byte>() : stream.ReadBytes(position, length);