acmを利用してWAVEファイルのフォーマットの変換に挑戦しているのですが
うまくいかないところがあるので質問させてください。

データが小さい時はacmStreamConvertを一回呼び出して終わりでこのときはきちんと変換されます。
一方、大きいWAVEファイルを変換する場合に、ループ処理で少しずつ変換させていったところ
関数自体は成功するんですが、いざ再生するとノイズの嵐になります。

以下ソース(StreamHeaderはACMSTREAMHEADERです。)
for(dwOffset=0,dwRest=dwSrcSize;dwRest>0;){
  //ソースから読み取り
  dwRead = min(dwDefRead,dwRest);
  src.FillWaveStream(dwOffset,StreamHeader.pbSrc,dwRead);//dwOffsetからdwReadだけpbSrcにWAVEストリームコピー
  dwRest -= dwRead;
  dwOffset += dwRead;
  //変換
  ::acmStreamConvert(hAcmStream,&StreamHeader,ACM_STREAMCONVERTF_BLOCKALIGN);
  //バッファに書き込み
  dst.insert(dst.end(),StreamHeader.pbDst,StreamHeader.pbDst + StreamHeader.cbDstLengthUsed);
}

デバッガで追っていてもエラーコードは返ってきていないので原因が分かりません。
ネットで調べてもacm関連のページはあまり見つからなくて解決できませんでした。
どなたかどこが間違っているか分かる方がいましたら教えてください。よろしくお願いします。