Как поступить (в драйвере), если программа не успевает считать данные и буфер переполняется?
ни как
, разве что проинформировать пользователя о переполнении буфера
Обычно делают два буфера: один подсовывают тому кто читают, а в другой пишут (потом, когда буфер для записи полон, их меняют). Если
средняя скорость записи в буфер, выше
средней скорости чтения из буфера, то тут ничего не поделаешь (это как в задаче с двумя трубами
: рано или поздно бассейн переполниться ).
Размерами буферов, и моментом их переключения можно играться для того, чтобы "сгладить"
пиковые скорости.
Например если в течении секунды данные вваляться с большой скоростью, а потом 10 секунд затишья