public int Read(IntPtr aBuf, uint aCount) { int count = (int)Math.Min(aCount, Available()); if (count > 0) { Marshal.Copy(Data, Position, aBuf, count); Position += count; } return count; }