Статья:

СТРУКТУРА ДРАЙВЕР УСТРОЙСТВА

Конференция: LI Студенческая международная научно-практическая конференция «Технические и математические науки. Студенческий научный форум»

Секция: Технические науки

Выходные данные
Газдиева М.А. СТРУКТУРА ДРАЙВЕР УСТРОЙСТВА // Технические и математические науки. Студенческий научный форум: электр. сб. ст. по мат. LI междунар. студ. науч.-практ. конф. № 6(51). URL: https://nauchforum.ru/archive/SNF_tech/6(51).pdf (дата обращения: 26.11.2022)
Лауреаты определены. Конференция завершена
Эта статья набрала 10 голосов
Мне нравится
Дипломы
лауреатов
Сертификаты
участников
Дипломы
лауреатов
Сертификаты
участников
на печатьскачать .pdfподелиться

СТРУКТУРА ДРАЙВЕР УСТРОЙСТВА

Газдиева Мадина Алиевна
студент, Ингушский государственный университет, РФ, г. Магас
Даурбекова Ася Мухтаровна
научный руководитель, старший преподаватель, Ингушский государственный университет, РФ, г. Магас

 

DEVICE DRIVER STRUCTURE

 

Madina Gazdieva

Student Ingush State University, Russia, Magas

Asya Daurbekova

Academic Supervisor,  Senior Lecturer of Ingush State University, Russia, Magas

 

Аннотация. В данной статье рассматривается структура драйвер устройства. А также рассматриваются основные процедуры драйвера.

Abstract. This article discusses the structure of a device driver. It also discusses the basic procedures of the driver.

 

Ключевые слова: драйвер, процедуры драйверов, структура драйверов

Keywords: driver, driver procedures, driver structure

 

Структура драйвер устройства

Драйвер устройства состоит из набора процедур, вызываемых на различных этапах обработки запроса ввода-вывода.

Перечислим основные процедуры драйвера:

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

2) Процедура добавления устройства. Реализуется только в устройствах, поддерживающих принцип Plug and Play. С помощью этой процедуры диспетчер PnP отправляет драйверу уведомление об обнаружении устройства, за которое отвечает драйвер. Когда процедура выполняется, драйвер создает объект устройства, описывающий данное аппаратное устройство.

3) Процедуры диспетчеризации. Это основные процедуры, предоставляемые драйвером для чтения или записи на устройство. Диспетчер ввода-вывода вызывает драйвер для выполнения операции ввода-вывода с помощью одной из его процедур диспетчеризации.

4) Процедура инициализации ввода-вывода. Драйвер инициирует передачу данных на устройство или получение данных с устройства. Эта процедура необходима только для драйверов, которым нужно обрабатывать только один запрос за раз, а не несколько запросов ввода-вывода, таких как драйвер клавиатуры. Обратите внимание, что большинство драйверов обрабатывают несколько IRP.

5) процедура обслуживания прерывания (ISR). Когда устройство генерирует прерывание, диспетчер прерываний ядра передает управление этой подпрограмме. ISR работают на уровне IRQL устройства, поэтому выполняют наименьший объем работы, чтобы не блокировать обслуживание прерываний с более низким IRQL. Чтобы выполнить остальную часть некритичной по времени части обработки прерывания, ISR ставит DPC в очередь. ISR присутствуют только в драйверах устройств, управляемых прерываниями; другие драйверы, такие как драйвер файловой системы, не имеют ISR.

6) DPC-процедура обработки прерываний. DPC-процедура выполняет основную часть обработки прерывания, оставшуюся после выполнения ISR. DPC-процедура отслеживает завершение текущей операции ввода-вывода на устройстве и обеспечивает корректное выполнение следующей операции ввода-вывода на устройстве.

7) Одна или несколько процедур завершения ввода-вывода. Служат для уведомления драйвера о завершении обработки IRP драйвером более низкого уровня. Например, диспетчер ввода-вывода вызывает процедуру завершения ввода-вывода драйвера файловой системы, когда драйвер диска заканчивает запись данных на диск. Эта процедура сообщает драйверу файловой системы об удачном или неудачном завершении операции записи или об ее отмене, а также дает разрешение драйверу на освобождение ресурсов.

8) Процедура отмены ввода-вывода.  Если операция ввода-вывода может быть отменена, драйвер определяет одну или более процедур отмены ввода-вывода. Получив для обработки IRP, который может быть отменен, драйвер должен иметь средство, предоставляемое диспетчеру ввода-вывода для отмены IRP. Если поток, выдавший запрос на ввод-вывод, завершается до окончания обработки запроса или отменяет операцию (например, вызывает функцию CancelIO), то диспетчер ввода-вывода выполняет процедуру отмены, предоставленную драйвером для данного IRP. Процедура отмены отвечает за выполнение любых действий, необходимых  для освобождения ресурсов, выделенных при обработке IRP, и за завершение IRP со статусом отмены.

9) Процедура выгрузки. Освобождает все системные ресурсы, задействованные драйвером, как правило, освобождаются ресурсы, выделенные процедурой инициализации.

10) Процедуры  регистрации ошибок. Уведомляют об ошибках диспетчер ввода-вывода, который записывает информацию в журнал ошибок. 

Ограничения, налагаемые на драйвер:

1. Драйвер режима ядра не может использовать API пользовательского уровня, только функции ядра.

2. Драйвер не может оперировать числами с плавающей точкой, так как мнемоники регистров FPU и MMX одинаковы, и драйвер не знает, какие именно регистры имеются в виду. При использовании – аварийный останов системы.

3. Нельзя работать с физической памятью напрямую. Можно получить виртуальный адрес и работать с ним.

4. Драйвер не должен работать длительное время при высоком уровне IRQL.

 

Список литературы:
1. Shelley Gaskin, Robert L. Ferrett GO! with Microsoft Windows 7 Comprehensive; Prentice Hall - Москва, 2011. - 720 c.
2. Операционные системы; Либроком - Москва, 2010. - 352 c.
3. Основы работы в операционной системе Windows. Практикум пользователя персонального компьютера; Феникс - Москва, 2014. - 176 c.