русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Дерево устройств


Дата добавления: 2013-12-23; просмотров: 1586; Нарушение авторских прав


Процедуры обслуживания прерывания ISR (interrupt Service Routine)

Основные процедуры драйверов устройств

Лекция 12

1. Обязательная процедура инициализации;

2. Обязательный набор процедур диспетчеризации (вызывается диспетчером ввода/вывода и принимает в качестве параметра IRP пакет);

3. Необязательная процедура запуска;

4. Необязательная процедура обслуживания прерывания;

5. Необязательный отложенный вызов;

6. Необязательная процедура завершения;

7. Обязательная процедура выгрузки драйвера;

8. Необязательная процедура отмены длительной операции;

9. Обязательная процедура уведомления об отключении системы (вызывается диспетчером ввода/вывода)

10. Необязательная процедура протоколирования ошибок.

 

Выполняется в ответ на получение прерывания от аппаратного устройства с высоким приоритетом. Как правило, размещает в очереди вызов отложенной обработки DPC – defraud processing call.

Процедура облуживания прерываний так же может быть вызвана асинхронно, когда генерируется APC (Asynchronous processing call). Так же выполняется привилегированно, но в контексте вызвавшего процесса: в режиме ядра или пользователя. Используется:

1. Буферизированный ввод/вывод - буфер выделяться в невыгружаемой памяти и действительном контексте любого процесса или потока

2. Прямой ввод/вывод - буфер независим от процесса и описывается для драйвера при помощи дескрипторов памяти. Адрес буфера используется в качестве системного виртуального адресного пространства

3. Небуферизированный ввод/вывод – драйверу непосредственно передается адрес буфера в контексте вызвавшего процесса.

 

При инициализации устройства диспетчер plug-and-play формирует дерево устройств, начинающееся с виртуального драйвера шины с имени root и отражающего взаимосвязи между устройствами.



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

1. Высокоуровневый драйвер фильтра;

2. Функциональный драйвер;

3. Низкоуровневый драйвер;

4. Драйвер фильтра шины;

5. Драйвер шины.

Идентификаторы устройств специфичны для конкретной шины. Могут состоять из идентификатора составителя, продукта и экземпляра устройств. Общий идентификатор устройства используется для поиска раздела устройства в реестре.

Устройства драйвера PnP устройства:

Драйвер шины информирует диспетчер PnP о новом устройстве, сообщая его идентификатор. Если в реестре нет походящего функционального драйвера, сообщение передается диспетчеру PnP пользовательского режима. Он собственно пытается установить нужный драйвер (генерация диалоговых окон и так далее). API функции (особенно Setup CfgMgr) используются для поиска info файлов, совместимых с обнаруженным устройством. Когда драйвер обнаружен, устанавливаются его параметры.

 



<== предыдущая лекция | следующая лекция ==>
Лекция 11 | Основные требования ОС


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.