MemoryStream mStream = new MemoryStream(); //stream.Read( byte[] tampon = new byte[512]; int nBytesRead = 0; while ((nBytesRead = stream.Read(tampon, 0, 512)) > 0) { mStream.Write(tampon, 0, 512); } IntPtr ptr; byte[] dataB = mStream.ToArray(); //Marshal.wCopy(dataB,0,ptr, dataB.Length); unsafe { byte[] b = new byte[255]; fixed (byte* p =b) // context unsafe. { ptr = (IntPtr)p; } } // Load wav. //data = Alut.alutLoadMemoryFromFile(fileName, out format, out size, out frequency); data = Alut.alutLoadMemoryFromFileImage(ptr,dataB.Length, out format, out size, out frequency);