USBドライバを作成しています。

バッファが少なく、 転送の間隔があいてしまうと、
バッファがあふれデータが喪失してしまうデバイスがターゲットです。

ReadFileを同期的に呼び出すと前のReadFileの完了の処理をしてから
次のReadFileを呼び出すまでの間にデータが喪失してしまいました。

ReadFileを非同期的に複数回呼び出し
完了したものを処理して再びReadFileを呼び出すようにしたところ、
ReadFileの呼び出しの間にデータが喪失する現象は解決しました。

ところが、数時間動作させるとReadFileが
要求したサイズを受信したわけでもなく、
ショートパケットを受信したわけでもないのに早まって完了してしまうことがあります。

ReadFileを1回しか呼ばない場合はこの現象は今のところ確認できていないのですが、
前述のようにデータが喪失してしまいます。

作成したドライバでは特にキュー等は作成しておらず(作成方法もわからないのですが)、
単に下位のドライバに要求を投げています。

ReadFileを複数回呼び出すのはいけないことなのでしょうか?
よろしくお願いいたします。