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