Ok I was able to make this partially working:
var fileProc = new BASS_FILEPROCS(
OnCloseStream,
OnGetStreamLength,
OnReadStream,
OnSeekStream);
var channel = Bass.BASS_StreamCreateFileUser(BASSStreamSystem.STREAMFILE_BUFFER,
BASSFlag.BASS_STREAM_DECODE,
fileProc,
IntPtr.Zero);
I've got a Stream which I read inside OnReadStream method, but it looks like that BASS is trying to read/stream the whole file at once - not only closest chunks. Is there any solution to keep only small buffer?
I've got also some issues with seeking, but I'll try to resolve this later.