Драйвер клавиатуры, реализующий функции музыкального синтезатора на клавиатуре для Windows NT 5 - Курсовая работа

бесплатно 0
4.5 168
Архитектура Windows NT 5. Приоритеты выполнения программного кода. Описание формата MIDI-данных. Установка драйвера в системе. Выбор средств разработки программного обеспечения. Обработка запросов драйверной модели WDM. Использование библиотеки DirectKS.


Аннотация к работе
В современных вычислительных системах важнейшую роль играет подсистема ввода/вывода. В связи с этим в настоящее время возрастает актуальность разработки программных систем, осуществляющих взаимодействие с периферийными устройствами посредством подсистемы ввода/вывода. Данное программное обеспечение позволяет организовать настраиваемое звуковое сопровождение нажатий клавиш на клавиатуре. Существует множество вариантов его применения, среди которых можно выделить следующие: Упрощение работы с компьютером людям со слабым зрением.В соответствии с заданием на курсовую работу необходимо разработать программное обеспечение для решения следующих задач: Вывод музыкальных нот с заданными параметрами при нажатии клавиш. Программное обеспечение состоит из двух взаимодействующих частей: Драйвер-фильтр, реализующий первую задачу. Требования к программному обеспечению: Драйвер-фильтр должен отслеживать нажатия всех клавиш клавиатуры PS/2 и генерировать музыкальные ноты с соответствующими клавише параметрами. Программа настройки должна позволять пользователю редактировать параметры звучания клавиш, предоставляя удобный интерфейс. Запросы на ввод/вывод, посылаемые приложениями или другими драйверами, обрабатываются драйвером, после чего запрашивающей программе в том же пакете посылается статус завершения операции.Драйверная модель WDM построена на организации и манипулировании слоями объектов физических устройств (PDO, Physical Device Object) и объектов функциональных устройств (FDO, Functional Device Object). Объект PDO создается для каждого физически идентифицируемого элемента аппаратуры, подключенного к шине данных, и подразумевает ответственность за низкоуровневый контроль, достаточно общий для набора функций реализуемых этим аппаратным элементом. Объект PDO - это особая структура данных, создаваемая системой для взаимодействия программного и аппаратного обеспечения. Объекты FDO подразумевает единицу логической функциональности устройства. Объектам FDO устройств разрешается окружать себя Объектами Фильтрами (FIDO, Filter Device objects) как показано на рис.ISRWDM-драйверы отличаются от унаследованных драйверов тем, что должны содержать дополнительные точки входа для поддержки PNP. IN PUNICODE_STRING REGISTRYPATH) // путь к подразделу регистра, // относящегося к драйверу В WDM-драйверах на DRIVERENTRY возложены обязанности по регистрации всех остальных точек входа драйвера. В поддерживающих PNP драйверах через эту точку входа менеджер PNP посылает драйверу уведомление об обнаружении устройства, за которое должен отвечать драйвер.Следует выделить отдельный класс точек входа драйвера, которые предназначены для обработки IRP-пакетов с различными кодами операций. Эти точки входа регистрируются при загрузке драйвера в функции DRIVERENTRY. Регистрация производится путем заполнения элементов массива MAJORFUNCTION адресами диспетчеризуемых функций.Функции, адреса которых записаны в массиве MAJORFUNCTIONS, вызываются диспетчером ввода/вывода для обработки соответствующих запросов от клиентского драйвера (пользовательских приложений или модулей уровня ядра). Эти запросы оформляются в виде специальных структур - IRP пакетов. Поле ASSOCIATEDIRP.SYSTEMBUFFER типа void* содержит указатель на системный буфер для случая если устройство поддерживает буферизованный ввод/вывод. Основное значение ячеек стека IRP пакета состоит в том, чтобы хранить функциональный код и параметры запроса на ввод/вывод. Для запроса, который послан драйверу верхнего уровня, Диспетчер ввода/вывода создает пакет IRP с несколькими стековыми ячейками - по одной для каждого FDO.Прерывание требует обработки, поэтому выполнение текущего кода прекращается и управление передается обработчику прерывания. Windows NT 5 использует схему приоритетов прерываний, известную под названием «уровни запросов прерываний» (interrupt request levels, IRQL). Причем, прерывания с IRQL=0 (PASSIVE_LEVEL, уровень нормального исполнения потоков) по IRQL=2 (DISPATCH_LEVEL, планирование потоков и выполнение отложенных процедур) являются программными, а прерывания с IRQL=3 (device 1) по IRQL=31 (HIGH_LEVEL, проверка компьютера и шинные ошибки) являются аппаратными. Прерывание с уровнем IRQL=0, строго говоря, прерыванием не является, так как оно не может прервать работу никакого кода (для этого этот код должен выполняться на еще более низком уровне прерывания, а такого уровня нет). Приоритеты, которые различает планировщик заданий для потоков с уровнем PASSIVE_LEVEL, принимают значения от 0 до 31 (MAXIMUM_PRIORITY) и называются приоритетами планирования.Драйвер i8042prt создает два безымянных объекта «устройство» и подключает один к стеку клавиатуры, а другой к стеку мыши. Поверх драйвера i8042prt, точнее, поверх его устройств, располагаются именованные объекты «устройство» драйверов Kbdclass и Mouclass. Драйверы Kbdclass и Mouclass являются так называемыми драйверами класса и реализуют общую функциональность для всех типов клавиатур и мышей, т.е. для всего класса этих устройств. Получив IRP, др

План
Содержание

1. Введение

2. Конструкторский раздел

2.1 Постановка задачи

2.2 Архитектура Windows NT 5

2.3 Драйверная модель WDM

2.3.1 Функции загрузки/выгрузки драйвера

2.3.2 Функции обработки запросов/прерываний

2.4 Приоритеты выполнения программного кода

2.5 Стек клавиатуры

2.6 Kernel Streaming

2.7 Описание формата MIDI-данных

2.8 Выбор структуры программного обеспечения

2.8.1 Драйвер-фильтр

2.8.2 Получение доступа к аудиоустройству

2.8.3 Взаимодействие компонент программного обеспечения

2.9 Алгоритм работы драйвера-фильтра

2.9.1 Функции загрузки/выгрузки драйвера

2.9.2 Функции обработки пакетов IRP

2.9.3 Функции работы с аудиоустройством

2.9.4 Схема хранения музыкальных параметров клавиш

2.9.5 Разделение задачи на потоки

3. Технологический раздел

3.1 Выбор средств разработки программного обеспечения

3.2 Установка драйвера в системе

3.3 Сборка программного обеспечения

3.4 Использование библиотеки DIRECTKS

3.5 Отправление запросов из приложения в драйвер

3.6 Описание интерфейса пользователя

3.7 Тестирование программного обеспечения

4. Заключение

5. Список литературы

6. Приложения

6.1 Функции установки драйвера в системе

6.2 Изменения в библиотеке DIRECTKS

Введение
В современных вычислительных системах важнейшую роль играет подсистема ввода/вывода. Известно, что примерно 80% инструкций программы связаны с этой подсистемой. В связи с этим в настоящее время возрастает актуальность разработки программных систем, осуществляющих взаимодействие с периферийными устройствами посредством подсистемы ввода/вывода.

Данное программное обеспечение позволяет организовать настраиваемое звуковое сопровождение нажатий клавиш на клавиатуре. Существует множество вариантов его применения, среди которых можно выделить следующие: Упрощение работы с компьютером людям со слабым зрением.

Создание MIDI-синтезатора на клавиатуре.

Создание системы звуковой сигнализации.

В стандартную поставку ОС Microsoft Windows XP Professional входят компоненты, обеспечивающие специальные возможности операционной системы для пользователей с различными отклонениями в здоровье. Среди этих компонент следует отметить: «Экранную клавиатуру», с помощью которой, в частности, можно озвучить выбор клавиш мышью.

Возможность озвучивания нажатий клавиш Num, Caps и Scroll Lock.

Характерной особенностью вышеперечисленных компонент является подача сигнала одной частоты независимо от нажатой клавиши и невозможность настройки параметров звучания. В этой связи представляется целесообразной разработка нового программного обеспечения, позволяющего организовать звуковое сопровождение клавиатуры в более полном объеме, в частности, настраивать выборочное озвучивание клавиш.
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?