All, ты ещё здесь сидишь?
Четверг Hоябрь 13 2003 17:24, Dima Orlov wrote to Yurij Sysoev:
DO> Кто и о чем рассуждает? Вин9х - это не дос, пользуется она досподобным DO> ядром или нет я не знаю и знать не желаю. Программы она при этом DO> запускает вин32.
И программы эти частенько работают через 16-битные драйвера, дико тормозя. К примеру ввод звука "виндовыми" средствами - только так. Цитирую:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
В Windows 95/98 подсистема MME и ее драйверы так и остались 16-разрядными, как и в Windows 3.x. Из-за этого каждое обращение к звуковому драйверу из Win32-приложения сопровождается двойной сменой режима исполнения (thunking), приводящее, увы, к дополнительным накладным расходам, доходящим до единиц миллисекунд на процессорах Celeron-366. Кроме этого, многие драйверы ограничивают частоту обновления кольцевого буфера, через который идет обмен между компьютером и адаптером, до нескольких десятков раз в секунду, отчего в процессе передачи звука возникает отставание (latency). У драйверов для адаптеров ISA это отставание может достигать десятков миллисекунд, у драйверов для адаптеров PCI оно обычно ограничивается единицами миллисекунд.
Для более оперативного вывода звука, особенно с модификацией его в реальном времени, Microsoft разработан более новый интерфейс DirectSound. Этот интерфейс призван "приблизить" аппаратуру адаптера к прикладной программе, и позволяет ей практически напрямую записывать звук в системный кольцевой буфер, сводя максимальные задержки к единицам миллисекунд для любого адаптера. При работе с DirectSound программа обращается непосредственно к 32-разрядному системному драйверу адаптера (VxD), минуя переключения между 32- и 16-разрядным режимом исполнения.
Для эффективной работы интерфейса DirectSound он должен поддерживаться системным драйвером адаптера. Для устройств, драйверы которых не поддерживают DirectSound, Windows эмулирует новый интерфейс "поверх" обычного MME-драйвера, но в этом случае все задержки даже возрастают из-за накладных расходов на эмуляцию.
К сожалению, Microsoft разработала спецификацию расширения DirectSound для звуковых VxD только в части воспроизведения звука, преследуя прежде всего интересы производителей игр. Запись звука через DirectSound до сих пор ведется путем эмуляции поверх MME.
formatting link
"Hизкоуровневое программирование звука в Windows"
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Страшно напрягает людей, работающих с музыкой. Приходится искать специальные звуковушки, работающие через специальные драйвера, не от M$.
Интересно, сколько ещё этот бред будут обсуждать? ;)
Георгий