Массовые музыкальные жанры XX века


Разгон... Sound Blaster'а - часть 5


Выходит, все же железка?! Эх, если бы не Новый год, было бы можно вернуть ее продавцу с претензией на обмен… А вдруг не железка? Может мать? Теоретически мог иметь место конфликт с контроллером PCI-шины или просто кривой контроллер…

Продолжая копаться в недрах драйвера, я неожиданно заметил, что OpenDriver вызывается четырежды с последовательной инициализацией портов "wave", "midi", "mixer" и "aux", причем первые три инициализации пролетали на ура, а последняя-то и вызывала задержку.

Вот оно что! Виновата все же железка! AUX-порт на Blaster'е действительно был (хотя мною никак не использовался) и даже успешно функционировал, хотя до жути медленно инициализировался.

А зачем мне AUX-порт? Мне и обычных портов с лихвой хватает! Стоит ли ради него терпеть задержки?! В общем, я решил запретить драйверу инициализацию AUX'а (действительно, глупо инициализировать то, с чем все равно не работаешь). Конечно, правильнее всего было бы переписать код "winmm.dll", но… вносить исправления в двоичный файл чрезвычайно тяжело и весьма небезопасно. Поэтому я ограничился тем, что забил строку "AUX" нулями (в моей версии файла она расположена по адресу ".7752BB18"). Функция OpenDriver, получив на вход пустую строку, ничего не инициируя, просто возвращает управление.

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

  • Шаг первый: зайдя в систему под именем (или с правами) администратора, переместите "winmm.dll" из каталога WINNT\system32\dllcache в какой-нибудь другой каталог, где вы храните резервные файлы. (Это на тот случай, если вы передумаете и захотите вернуть все на место)

  • Шаг второй: скопируйте WINNT\system32\winmm.dll в winmm.dl1 и откройте его в любом HEX-редакторе (например, Hiew'e, Qview'e или, на худой конец, в том, что встроен в популярную файловую оболочку DOS Navigator)

  • Шаг третий: в winmm.dll найдите строку "AUX", завершающуюся одним или несколькими нулями.


    Начало  Назад  Вперед