The BASS_DATA_AVAILABLE option retrieves the amount of data in the playback buffer, so it doesn't apply to a "decoding channel" (as you would use with ASIO output) and your request will fail (4294967295 = 0xFFFFFFFF = -1). To get the total amount of buffered data, you should also check the BASS_StreamPutData return value, like this...
DWORD buffered=BASS_StreamPutData(handle, NULL, 0); // get the amount of queued data
DWORD playbuf=BASS_ChannelGetData(handle, NULL, BASS_DATA_AVAILABLE); // attempt to get the amount in the playback buffer
if (playbuf!=(DWORD)-1) buffered+=playbuf; // if successful, add it to the queued amount