Программирование драйверов Windows


              

Данная глава была посвящена рассмотрению


Данная глава была посвящена рассмотрению двух реализаций драйвера LPTPort.sys, работающего с параллельным портом (устройством отмирающей, но еще вполне "живой" шины ISA), который при дополнении его тестовой заглушкой CheckIt становится отличным полигоном для детального рассмотрения зарождения и обработки прерываний в драйверах режима ядра.
Драйвер обладает определенными недостатками. Обслуживая не-PnP устройство, он опять-таки построен по методике Legacy (как драйвер "в стиле NT"), a не как современный WDM драйвер. Кроме того, для простоты реализации, он использует ресурсы, обозначенные другим, системным драйвером, не уделив должного внимания собственному "захвату" аппаратных ресурсов с последующей регистрацией их в операционной системе.
Тем не менее, заглушка CheckIt позволит любому читателю данной книги заполучить несложное устройство, которое позволяет произвольно, по собственному желанию, получать и обрабатывать прерывания на любом компьютере, в офисе или дома.
Первая, упрощенная версия драйвера LPTPort.sys, знакомит с общей методикой обработки прерываний в Windows NT 5.x. Вторая, усложненная версия вводит в использование механизмов системных очередей IRP пакетов как метода обеспечения последовательного доступа к устройству, а также знакомит с приемами совместного использования объектов события приложениями пользовательского режима и драйверами.
На базе приведенных примеров читатель может самостоятельно достроить достаточно интересные тесты, например, по одновременному доступу к драйверу из разных приложений (с использованием событий уведомляющего, а не синхронизационного типа), а также по реализации собственных очередей отложенных IRP пакетов.
Следующая глава будет посвящена рассмотрению вопросов установки драйверов с использованием inf-файлов.

Содержание  Назад  Вперед