Дисплейные драйверы для Windows. Драйверы для Windows. Музыка и звуковые эффекты

Дисплейные драйверы для Windows

Дисплейный драйвер является основным драйвером Windows. Если планируется создание дисплейного драйвера, к его разработчику предъявляется больше требований, чем к разработчикам других Windows-драйверов. Существуют также такие драйвера: intel hd graphics driver, драйвер geforce 1060, драйвера amd radeon.

Дисплейный драйвер – это наиболее часто вызываемый драйвер и один из основных компонентов, определяющих производительность. Также ядро вызывает ДД и при вызовах остальных функций ядра. Например, драйвер вызывается при перемещениях манипулятора «мышь». Даже если не производится никакой работы, ядро Windows вызывает ДД каждые полсекунды для поддержки мерцающего курсора.

Ясно, что производительность ДД влияет на производительность всей среды. Производительность принтерного драйвера достаточно важна, однако пользователи находят способы борьбы с низкопроизводительными принтерными драйверами: печатать во время обеденного перерыва или по ночам. Очевидно, что такой подход не возможен для ДД.

Для достижения приемлемой производительности ДД они обычно создаются на языке ассемблера. От разработчика требуется не только быть знакомым с растровыми графическими операциями и видеоустройствами для создания ДД, но и с самими процессорами семейства Intel. Может оказаться полезным использование возможностей самого процессора – инструкций процессора 80286 или даже 80386 и 80486.

Создание ДД сложно не только из-за использования языка ассемблера, но и из-за необходимости использования различных «тонкостей» программирования. Одна из широко используемых «тонкостей» иллюстрируется в Microsoft DDK. Драйвер генерирует машинный код «на лету», помещая код в массив на стеке и передавая управление коду, находящемуся в стеке. Даже модификация поставляемых в составе DDK примеров драйверов устройств требует глубоких знаний программирования на языке ассемблера.

В отличие от принтерных драйверов дисплейные управляют устройствами напрямую через порты ввода/вывода и специальные области памяти. Если имеется аппаратура с улучшенными возможностями задача по созданию ДД существенно упрощается. Если же аппаратура не поддерживает таких возможностей, необходима программная реализация ряда функций управления изображениями, которые требуется модулю GDI.
Тогда как принтерные драйверы могут использовать dm-функции, ДД не могут их использовать, так как модуль GDI использует функции ДД для отработки dm-функций.
Поскольку ДД управляют устройствами напрямую, разработка драйвера, работающего в 386 расширенном режиме, требует специального подхода. Перед разработкой драйвера расширенного режима необходимы понимание функционирования драйвера, работающего в реальном и стандартном режимах.

Драйверы для Windows. Музыка и звуковые эффекты

Интерфейс с музыкальным драйвером используется реже всего, за исключением, быть может, звукового сигнала оператору. Это происходит из-за того, что большинство функций не поддерживаются драйвером, используемым по умолчанию. Одним из объяснений этому является несовершенство стандартного оборудования.

Также ряд ошибок в драйвере, поставлявшемся в версии 3.0, делает невозможным использование даже самых примитивных функций. Не имеет смысла использовать поставляющийся в DDK код, разве что для исправления ошибок. Скорее всего, вы можете планировать создание драйвера для какой-либо музыкальной платы. Архитектура стандартного драйвера отражает архитектуру PC Junior и является устаревшей.
В документации по Microsoft SDK 3.0 отсутствует описание функций работы с музыкальным драйвером. За исключением краткого описания функций, менее страницы отведено описанию использования этих шестнадцати функций и их взаимодействия.

Так как ссылки на звуковое устройство не возвращаются, невозможно разделение доступа к «генератору звуков» между прикладными программами.
Стандартная аппаратура может издавать одновременно только один звук, тогда как даже компьютер IBM PC Junior мог издавать одновременно четыре различных звука. Другими словами, IBM PC Junior мог издавать звуки музыкального квартета. Функция OpenSound возвращает число «голосов», поддерживаемых драйвером; для стандартного драйвера в Windows 3.0 это значение равно 1.

Музыкальный драйвер хранит последовательность звуков в очереди так же, как коммуникационный драйвер хранит данные. Вместо отдельных байтов в очереди хранятся инструкции, управляющие звуковым устройством. Так же как ноты служат для описания музыки, элементы очереди содержат инструкции для «генератора звуков». Прикладная программа помещает инструкции в очередь, используя различные функции.

Так как очередь ограничена по размеру и прикладные программы не могут ожидать событий, кроме как сами обращаться к устройству и получать сообщения, ряд функций помогает прикладной программе поддерживать информацию в очереди таким образом, что не возникает перерыва в воспроизводимых программой звуках. Управлением очередью занимается сам драйвер устройства. Прикладная программа может установить размер очереди с помощью функции SetVoiceQueueSize.

Помимо основных звуков, хранящихся в очереди, музыкальный драйвер содержит текущую информацию о звуковых характеристиках, представленных в музыкальных терминах: тип звука, темп звучания, громкость, способ ведения звука. Прикладная программа указывает эту информацию с помощью функций SetVoiceEnvelope и SetSoundAccent.

Остальные функции позволяют прикладной программе синхронизироваться с «генератором звуков». Звук воспроизводится до тех пор, пока все содержимое очереди не будет проиграно или пока программа не вызовет функцию StopSound. Функция SyncAllVoices помещает синхронизационную отметку в очередь, позволяя различным звукам синхронизироваться при обнаружении данной отметки.

5 Честных Сервисов Заработка в Интернете [PDF]





Понравился урок - поделитесь с друзьями! (Для этого нажмите одну из кнопок ниже)



Комментирование и размещение ссылок запрещено.

Комментарии закрыты.



5 Честных Сервисов Заработка в Интернете [PDF]

Нажимая на кнопку, я даю согласие на обработку персональных данных



   
группа Учимся работать в компьютерных программах Хочу Всё Знать. Полезные Советы