バッファ周りの処理の改良は一段落した。共有モードの問題も解消している。続いてキャプチャークライアントを作ろうと思っている。wasapiのラッパークラスにコードを付け加えて作ろうかなと思っている。レンダラーとほとんど同じコードなので。
MSDNにも書いてあったけれど、Windows7以降では共有モードでも30ms以下のバッファサイズが指定できるようだ。実際試すと10ms~3msのサイズを指定できる。でも実際の発音までのレイテンシは長くなっているようだ。排他モードだとバッファサイズ≒レイテンシとなる。実際のレイテンシがいくつかはIAudioClient::GetStreamLatency()で調べることができる。何度も書いているけど共有モードの時のGetStreamLatencyの値ってなんだかよくわからないんだよね。うちの環境だと5ms付近で一定だったりする。