Факультет: Информатика и системы управления
Кафедра: Программное обеспечение ЭВМ и информационные технологии
РАСЧЕТНО-ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовому проекту на тему:
"Переопределение назначений клавиш на клавиатуре
в операционной системе Windows"
2009 г.
Оглавление
Введение. 4
1. Аналитический раздел. 5
1.1 Постановка задачи. 5
1.2 Архитектура Windows XP. 5
1.3 Модель WDM.. 8
1.4 Стек клавиатуры.. 9
1.5 Структура драйвера. 12
DiverEntry. 12
AddDevice. 12
DriverUnload. 13
Процедуры обработки пакетов IRP. 13
Функция обработки пакетов IRP_MJ_DEVICE_CONTROL. 15
Функция обработки пакетов IRP_MJ_READ.. 16
Функция обработки пакетов IRP_MJ_PNP. 16
ISR.. 16
1.6 Анализ методов решения задачи. 17
2. Конструкторский раздел. 19
2.1 Точки входа разрабатываемого драйвера-фильтра. 19
DiverEntry. 19
AddDevice. 20
DriverUnload. 21
Процедуры обработки пакетов IRP. 21
Функция обработки пакетов IRP_MJ_DEVICE_CONTROL. 21
Функция обработки пакетов IRP_MJ_READ.. 22
Функция обработки пакетов IRP_MJ_PNP. 22
Обработка остальных пактов IRP. 23
2.2 Взаимодействие компонентов системы.. 24
2.3 Размещение драйвера в памяти. 24
2.4 Переопределение клавиш.. 25
2.5 Установка драйвера в системе. 27
3. Технологический раздел. 30
3.1 Выбор языка программирования и средств программирования. 30
Драйвер-фильтр. 30
Программа для установки драйвера. 31
Программа для управления драйвером. 31
3.2 Структуры данных проекта. 31
Информация о нажатиях и отпусканиях клавиш.. 31
Структура списка замен. 33
Дополнительная информация. 33
3.3 Интерфейс управляющего приложения. 34
3.4 Тестирование драйвера-фильтра клавиатуры.. 35
Заключение. 37
Список литературы.. 38
Очень часто возникает необходимость в переназначении клавиш на клавиатуре.
§ Стандартное расположение клавиш неудобно при работе с определенным программным обеспечением
§ При переходе с одного типа клавиатуры на другой трудно привыкнуть к новому расположению клавиш.
Во многих случаях определенные клавиши могут помешать работе. Случайное нажатие на такие клавиши замедляет работу пользователя. Желательно, чтобы нажатие этих клавиш не приводило ни к каким действиям.
Поэтому задача переопределения и отключения клавиш является на сегодняшний день актуальной.
Существуют программы, решающие поставленную задачу. Примерами таких программ являются программа Марка Руссиновича Ctrl2 и программа MagicKey.
Программа Ctrl2 заменяет клавишу CapsLock на клавишу «левый Ctrl». Она реализована в виде драйвера.
Программа MagicKey, позволяет менять местами алфавитно-цифровые клавиши. Она реализована в виде драйвера и пользовательского приложения для управления этим драйвером.
1.1 Постановка задачи
В соответствии с заданием на курсовую работу, необходимо разработать программное обеспечение, позволяющее переопределять назначение клавиш на клавиатуре.
§ Программное обеспечение должно позволять переопределять все клавиши клавиатуры
§ Программное обеспечение должно позволять отключать клавиши.
§ Программное обеспечение должно позволять устанавливать список осуществляемых замен.
§ Программное обеспечение не должно нарушать и замедлять работу системы.
1.2 Архитектура Windows XPWindows XP является следующей – после Windows 2000 и Windows Millennium – версией операционной системы Microsoft Windows. Наиболее распространены реализации данной ОС для платформы Intel x86 в одно- или многопроцессорных конфигурациях, однако существуют также версии для DEC Alpha и MIPS. Данная операционная система использует защищённый режим центрального процессора, реализует механизмы виртуальной памяти и многозадачности.
Windows XP использует два уровня привилегий: уровень привилегий 0, соответствующий коду режима ядра и уровень привилегий 3, соответствующий коду прикладных задач (всего существует четыре уровня привилегий). Уровень привилегий накладывает определённые ограничения: в пользовательском режиме не могут выполняться привилегированные инструкции процессора и не разрешено обращение к защищённым страницам в памяти. Эти ограничения накладываются для обеспечения безопасности работы системы. Пользовательское приложение не должно иметь возможность – в результате ошибки или преднамеренно – вносить изменения в системные таблицы или в память других приложений. В частности, такие ограничения запрещают пользовательскому приложению напрямую управлять внешними устройствами.
В Windows XP обеспечение обмена данными и управление доступом к внешнему устройству возлагается на его драйвер. Ввод и вывод в драйверах осуществляется пакетами – IRP (Input/Output Request Packet). Запросы на ввод / вывод, посылаемые приложениями или другими драйверами, обрабатываются драйвером, после чего запрашивающей программе в том же пакете посылается статус завершения операции.
Архитектура ввода / вывода в Windows XP имеет иерархическую структуру. Для осуществления операции ввода / вывода пользовательское приложение должно вызвать одну из функций API. Эта функция создает необходимый IRP пакет и направляет его подсистеме ввода / вывода. Подсистема ввода / вывода направляет IRP пакет необходимому драйверу. Драйвер осуществляет обращение к устройствам, используя функции HAL.
HAL (Hardware Abstraction Layer) – это слой программного обеспечения, который скрывает специфику аппаратной платформы от остальных компонентов системы. Он обеспечивает малые затраты при переносе системы или элементов программного обеспечения. На Рис. 1. показана архитектура ввода / вывода Windows XP.
Рис. 1. Архитектура ввода / вывода Windows XP
Управление внешним устройством в общем случае сводится к заполнению регистров контроллера необходимыми данными. Монопольный доступ драйвера к этим регистрам гарантируется операционной системой. Очевидно, что при данных обстоятельствах требуется, чтобы драйвер устройства выполняется в режиме ядра. В архитектуре Windows XP существуют так называемые драйверы виртуальных устройств для поддержки DOS‑приложений, исполняющиеся в реальном режиме.
Классификация драйверов Windows XP
§ Драйверы режима ядра
· Драйверы файловых систем
· Унаследованные
· Драйверы Plug and Play
· Видеодрайверы
§ Драйверы пользовательского режима
· Драйверы виртуальных устройств
... системам линейных алгебраических уравнений с более чем одной неизвестной; MATLAB решает такие уравнения без вычисле-ния обратной матрицы. Хотя это и не является стандартным математическим обозначением, система MATLAB использует терминологию, связанную с обычным делением в одномерном случае, для описания общего случая решения совместной системы нескольких линейных уравнений. Два символа деления / ...
... , выдачей и приёмом лицензий). В условиях крупных сетей рекомендуется выделение под сервер лицензий отдельного компьютера (или нескольких - для резервирования). 1.1 Архитектура терминальных устройств В компьютерных технологиях трёхуровневая архитектура, синоним трёхзвенная архитектура (по англ. three-tier или Multitier architecture) предполагает наличие следующих компонентов приложения: ...
... для реализации системы бюджетирования Консультационной группы "Воронов и Максимов". Статья о проблемах выбора системы бюджетирования - в проекте "УПРАВЛЕНИЕ 3000". Бюджетный автомат Если вы решитесь на автоматизацию системы бюджетирования компании, перед вами сразу встанут вопросы: что выбрать, сколько платить, как внедрять. Примеряйте! О ЧЕМ РЕЧЬ В “Капитале” на стр. 44, 45 мы рассказали ...
... без применения компьютерной техники. Непрекращающееся развитие любого предприятия, учреждения или организации, а как следствие объёмов и сложности информации требует расширения компьютерных сетей и автоматизированных информационных систем. Но кроме очевидных выгод компьютерная техника несет в себе опасность здоровью и поэтому актуальной становится проблема охраны труда человека в процессе работы ...
0 комментариев