ストリームバッファ再生に関して、完結したのでこちら(仕組み)を
参照してみてください。後日には、そのソースも公開予定です

簡単に書いていますので、不具合が起きてもご了承を

-------------------------------------------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.DirectX;
using Microsoft.DirectX.DirectSound;
using ds9 = Microsoft.DirectX.DirectSound;

namespace test
{
 public partial class Form1 : Form
 {
  private Device dev9;
  private ds9.Buffer ds_2ndBuffer;
  public Form1()
  {
   InitializeComponent();
  }

  private void button1_Click(object sender, EventArgs e)
  {
   // Managed Direct Sound の初期化
   dev9 = new Device();
   dev9.SetCooperativeLevel(this, CooperativeLevel.Priority);
   ds9.BufferDescription desc = new ds9.BufferDescription();

   // プログラムが非アクティブでも再生可能にする
   desc.GlobalFocus = true;

   // ファイルの読み込み方法をストリーミング化
   System.IO.FileStream fs = new System.IO.FileStream
   ("楽曲.wav",System.IO.FileMode.Open, System.IO.FileAccess.Read););
   Byte[] buf = new Byte[fs.Length];
   fs.Read(buf, 0, buf.Length);
   ds_2ndBuffer = new SecondaryBuffer(fs.Name, desc, dev9);
   // すべての情報を基に再生
   ds_2ndBuffer.Play(0, BufferPlayFlags.Default|BufferPlayFlags.Looping);
  }
 }
}
------------------------------------------------------
プレイリストを作成する場合は、FileStreamクラスの解放が必要です。
あとは、最新のDirectXランタイムを入れていても動作不可能な場合は
DirectX SDK導入した際に入れられたランタイムをインストールすることで起動可能です。