Что называется драйвером устройства опишите назначение программ системного уровня

В отличие от пользовательского приложения, драйвер не является процессом и не имеет потока исполнения. Вместо этого управление драйверу передаётся в результате запроса на ввод/вывод от пользовательского приложения или драйвера, либо возникает в результате прерывания. В первом случае контекст исполнения драйвера точно известен — это прикладная программа. Во втором случае контекст исполнения может быть как известным, так и случайным — это зависит от контекста исполнения функции вызывающего драйвера. В третьем случае контекст исполнения случайный, поскольку прерывание (и, соответственно, исполнение кода драйвера) может произойти при выполнении любой прикладной программы.

По расположению в стеке драйверов:

Драйверы высшего уровня — получают запросы от пользовательского приложения и взаимодействуют с нижестоящими драйверами;

Промежуточные драйверы — получают запросы от вышестоящих драйверов и взаимодействуют с нижестоящими драйверами;

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

Другие устройства в диспетчере устройств как убрать Windows 11.Неизвестное устройство.PCI-контроллер

Также выделяют понятие монолитного драйвера – драйвера высшего уровня, не взаимодействующего ни с какими другими драйверами.

В связи с усовершенствованием модели драйверов Windows (WDM – Windows Driver Model), в которой были добавлены поддержка Plug and Play и энергосберегающие технологии, драйвера стали разделять на:

Унаследованные драйвера (Legacy-драйвера, драйвера «в стиле NT») — драйвера, написанные в старом манере, без поддержки нововведений;

WDM-драйвера – драйвера, которые удовлетворяют всем требованиям расширенной модели WDM.

2.4 Общая структура Legacy-драйвера

Legacy-драйвер имеет следующие основные точки входа:

DriverEntry – процедура загрузки драйвера;

DriverUnload – процедура выгрузки драйвера;

Рабочие процедуры обработки IRP-пакетов;

ISR-процедура (Interrupt Service Routine) – процедура обработки прерывания;

DPC-процедура (Deferred Procedure Call) – процедура отложенного вызова.

2.4.1 Процедура DriverEntry

Данная процедура присутствует в любом драйвере и вызывается диспетчером ввода/вывода при загрузке драйвера.

Legacy-драйверы выполняют в ней существенно большую работу, нежели WDM-драйвера, так как они вынуждены выполнять работу процедуры AddDevice, обязательной для WDM-драйверов. Помимо решения инициализационных задач и регистрации точек входа рабочих процедур обработки поддерживаемых IRP-пакетов и процедуры выгрузки драйвера, здесь:

Определяется аппаратное обеспечение, которое драйвер будет контролировать;

Создаются объекты устройств (функция IoCreateDevice) для каждого физического или логического устройства под управлением данного драйвера;

Для устройств, которые должны быть видимы пользовательским приложениям, создаются символьные ссылки (функция IoCreateSymbolicLink);

При необходимости, устройство подключается к объекту прерываний. В случае, если ISR-процедура требует использования DPC-процедуры, то соответсвующий ей объект создаётся и инициализируется на этом этапе;

Почему не стоит обновлять драйвера!

Выделение памяти, необходимой для работы драйвера.

2.4.2 Процедура DriverUnload

Диспетчер ввода/вывода вызывает данну процедуру при динамической выгрузке драйвера. Эта процедура выполняет действия, «обратные» тем, что выполняются в процедуре DriverEntry.

Для Legacy-драйверов характерны следующие шаги:

Для некоторых типов аппаратуры необходимо сохранить ее состояние в системном реестре, т.к. при последующей загрузке драйвера эти данные могут быть использованы;

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

Читайте также:
Чтобы процессор мог работать с программами необходимо

Удаление символьной ссылки из пространства имен, видимого пользовательскими приложениями (IoDeleteSymbolicLink);

Удаление объекта устройства (IoDeleteDevice);

Освобждение памяти, выделенной драйверу в процессе работы.

2.4.3 Рабочие процедуры обработки IRP-пакетов

Все функции, зарегистрированные в процедуре DriverEntry путём заполнения массива MajorFunction, вызываются Диспетчером ввода/вывода для обработки соответсвующих запросов от клиентов драйвера. Эти запросы всегда оформлены в виде специальных структур данных – IRP-пакетов, память под которые выделяется Диспетчером ввода/вывода в нестраничном системном пуле. Структура IRP-пакета такова, что он состоит из заголовка фиксированного размера и IRP-стека, размер которого зависит от количества объектов устройств в стеке.

Поле IoStatus типа IO_STATUS_BLOCK содержит два подполя:

Status содержит значение, которое устанавливает драйвер после обработки пакета;

В Information чаще всего помещается число переданных или полученных байт.

Поле AssociatedIrp.SystemBuffer типа PVOID содержит указатель на системный буфер для случая, если устройство поддерживает буферизованный ввод/вывод;

Поле MdlAddress типа PMDL содержит указатель на MDL-список, если устройство поддерживает прямой ввод вывод;

Поле UserBuffer типа PVOID содержит адрес пользовательского буфера для ввода/вывода;

Поле Cancel типа BOOLEAN — это индикатор того, что пакет IRP должен быть аннулирован.

2.4.3.2 Стек IRP-пакета. Основное назначение ячеек стека IRP-пакета состоит в том, чтобы хранить функциональный код и параметры запроса на ввод/вывод. Для запроса, который адресован драйверу самого нижнего уровня, соответствующий IRP пакет имеет только одну ячейку стека. Для запроса, который послан драйверу верхнего уровня, Диспетчер ввода/вывода создает пакет IRP с несколькими стековыми ячейками – по одной для каждого объекта устройства.

Каждая ячейка IRP-стека содержит:

MajorFunction типа UCHAR – это код, описывающий назначение операции;

MinorFunction типа UCHAR – это код, описывающий суб-код операции;

DeviceObject типа PDEVICE_OBJECT – это указатель на объект устройства, которому был адресован данный запрос IRP;

FileObject типа PFILE_OBJECT – файловый объект для данного запроса;

Parameters типа union – применение зависит от значения MajorFunction.

Диспетчер ввода/вывода использует поле MajorFunction для того, чтобы извлечь из массива MajorFunction нужную для обработки запроса процедуру.

Каждая процедура обработки IRP пакетов должна в качестве параметров принимать:

Указатель на объект устройства, для которого предназначен IRP запрос;

Указатель на пакет IRP, описывающий этот запрос;

2.4.3.3 Функция обработки пакетов IRP_MJ_CREATE. Данная функция предназначена для обработки запросов на получение дескриптора драйвера от пользовательских приложений или вышестоящих драйверов. Как правило, эта функция просто помечает IRP-пакет, как завершённый.

2.4.3.4 Функция обработки пакетов IRP_MJ_CLOSE. Данная функция предназначена для обработки запросов на закрытие дескриптора драйвера от пользовательских приложений или вышестоящих драйверов. Как правило, эта функция просто помечает IRP-пакет, как завершённый.

2.4.3.5 Функция обработки пакетов IRP_MJ_DEVICE_CONTROL. Данная функция позволяет обрабатывать расширенные запросы от клиентов пользовательского режима, служат чаще всего для обмена данными между приложением и драйвером. Такой запрос может быть сформирован посредством вызова функции DeviceIoControl из пользовательского режима.

Здесь используются IOCTL-коды (I/O Control code), часть из которых предопределена операционной системой, а часть может создаваться разработчиком драйвера. Такой код задаётся в запросе Диспетчером ввода/вывода при формировании IRP-пакета.

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

Читайте также:
На какой программе варить говядину в мультиварке редмонд

Метод доступа к данным, обеспечиваемый Диспетчером ввода/вывода, определяется в IOCTL-коде. Такими методами могут быть:

METHOD_BUFFERED: входной пользовательский буфер копируется в системный, а по окончании обработки системный копируется в выходной пользовательский буфер.

METHOD_IN_DIRECT: необходимые страницы пользовательского буфера загружаются с диска в оперативную память и блокируются. Далее с помощью DMA осуществляется передача данных между устройством и пользователем.

METHOD_OUT_DIRECT: необходимые страницы пользовательского буфера загружаются с диска в оперативную память и блокируются. Далее с помощью DMA осуществляется передача данных между устройством и пользователем.

METHOD_NEITHER: при данном методе передачи не производится проверка доступности памяти, не выделяются промежуточные буфера и не создаются MDL. В IRP-пакете передаются виртуальные адреса буферов в адресном пространстве инициатора запроса ввода/вывода.

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

С точки зрения драйвера, доступ к буферным областям, содержащим данные или предназначенным для данных, осуществляется с помощью следующих полей структур [1]:

Буфер с данными

Использует буферизацию (системный буфер)

Адрес буфера в системном адресном пространстве указан в pIrp->AssociatedIrp.SystemBuffer

Буфер для данных

Использует буферизацию (системный буфер)

Адрес буфера в системном адресном пространстве указан в pIrp-> AssociatedIrp. SystemBuffer

2.4.4 ISR – процедура обработки прерываний

Эту функцию драйвер регистрирует, чтобы она получала управление в момент, когда аппаратура, обслуживаемая драйвером, передала сигнал прерывания. Задача этой функции выполнить минимальную работу и зарегистрировать процедуру отложенного вызова (DPC) для обслуживания прерывания. Вызов диспетчером прерываний ядра может произойти в любом контексте: как ядра, так и пользовательского процесса.

2.4.5 DPC – процедура отложенного вызова

Такие процедуры выполняются при более низком уровне запроса прерывания (IRQL), чем ISR, что позволяет не блокировать другие прерывания. В них может выполняться вся или завершаться начатая в ISR работа по обслуживанию прерываний.

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

Так выглядит схема взаимодействия пользовательского приложения с драйвером через компоненты системы:

В Legacy-драйвере данного курсового проекта реализованы следующие процедуры:

DispatchCreate (обработка IRP_MJ_CREATE-пакета);

DispatchClose (обработка IRP_MJ_CLOSE-пакета);

DispatchDeviceControl (обработка IRP_MJ_DEVICE_CONTROL-пакета).

Информация о работе «Профилировщик приложений»

Раздел: Информатика, программирование
Количество знаков с пробелами: 37785
Количество таблиц: 1
Количество изображений: 5

Похожие работы

. 100;i++)recursive(); //Вызываем 100 раз рекурсивную функцию 100х100 return 0; > Приложение простое по сути, но очень содержательное, так как эффективно демонстрирует основные возможности Quantify. В самом начале статьи мы выдвигали требование, по которому разработчикам не рекомендуется пользоваться рекурсивными функциями. Тестеры или разработчики, увидев диаграмму вызовов, выделят функцию, .

. из которых ранее относились только к интеллектуальным возможностям человека. 2. Инструментальное программное обеспечение 2.1 Сущность и понятие инструментального программного обеспечения Инструментальное программное обеспечение (ИПО) — программное обеспечение, предназначенное для использования в ходе проектирования, разработки и сопровождения программ. Применяется инструментальное .

. системам линейных алгебраических уравнений с более чем одной неизвестной; MATLAB решает такие уравнения без вычисле-ния обратной матрицы. Хотя это и не является стандартным математическим обозначением, система MATLAB использует терминологию, связанную с обычным делением в одномерном случае, для описания общего случая решения совместной системы нескольких линейных уравнений. Два символа деления / .

Читайте также:
Бесплатная программа для автоматического обновления драйверов

. . Время задержки сигнала при этом увеличивается до 9нс. Наиболее перспективным семейством КМОП микросхем считается семейство SN74AUC с временем задержки сигнала 1,9нс и диапазоном питания 0,8..2,7В. 3. ИНФОРМАЦИОННО-СПРАВОЧНАЯ СИСТЕМА 3.1 Определение и классификация БД База данных – это информационная модель предметной области, совокупность взаимосвязанных, хранящихся вместе данных при .

Источник: kazedu.com

Что называется драйвером устройства опишите назначение программ системного уровня

Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Необходимо обновить браузер или попробовать использовать другой.

Драйверы режима ядра: Часть 1: Основные понятия

Драйверы режима ядра: Часть 1: Основные понятия — Архив WASM.RU

  • Процессы поддержки системы (System Support Processes) — например, процесс входа в систему Winlogon (реализован в %SystemRoot%System32Winlogon.exe);
  • Процессы сервисов (Service Processes) — например, спулер печати;
  • Пользовательские приложения (User Applications) — бывают пяти типов: Win32, Windows 3.1, MS-DOS, POSIX и OS/2;
  • Подсистемы окружения (Environment Subsystems) — поддерживается три подсистемы окружения: Win32 (реализована в %SystemRoot%System32Csrss.exe), POSIX (реализована в %SystemRoot%System32Psxss.exe), OS/2 (реализована в %SystemRoot%System32os2ss.exe).
    Исполнительная система (Executive) — управление памятью, процессами и потоками и др.;
  • Ядро (Kernel) — планирование потоков, диспетчеризация прерываний и исключений и др. (реализовано в %SystemRoot%System32Ntoskrnl.exe);
  • Драйверы устройств (Device Drivers) — драйверы аппаратных устройств, сетевые драйверы, драйверы файловых систем;
  • Уровень абстрагирования от оборудования (Hardware Abstraction Layer, HAL) — изолирует три вышеперечисленных компонента от различий между аппаратными архитектурами (реализован в %SystemRoot%System32Hal.dll);
  • Подсистема поддержки окон и графики (Windowing And Graphics System) — функции графического пользовательского интерфейса (Graphic User Interface, GUI) (реализована в %SystemRoot%System32Win32k.sys).
  • Драйверы пользовательского режима (User-Mode Drivers):
  • Драйверы виртуальных устройств (Virtual Device Drivers, VDD) — используются для поддержки программ MS-DOS (не путать с VxD драйверами в Windows 95/98 — это совсем разные вещи, хотя и имеют одно название);
  • Драйверы принтеров (Printer Drivers).
  • Драйверы файловой системы (File System Drivers) — реализуют ввод-вывод на локальные и сетевые диски;
  • Унаследованные драйверы (Legacy Drivers) — написаны для предыдущих версий Windows NT;
  • Драйверы видеоадаптеров (Video Drivers) — реализуют графические операции;
  • Драйверы потоковых устройств (Streaming Drivers) — реализуют ввод-вывод видео и звука;
  • WDM-драйверы (Windows Driver Model, WDM) — поддерживают технологию Plag and Play и управления электропитанием. Их отличительной особенностью является совместимость на уровне исходного кода между Windows 98, Windows ME и Windows 2000.
  • в контексте пользовательского потока инициировавшего запрос ввода-вывода;
  • в контексте системного потока режима ядра (эти потоки принадлежат процессу System);
  • как результат прерывания (а значит, не в контексте какого-либо процесса или потока, который был текущим на момент прерывания).

Источник: wasm.in

Презентация на тему «Лекция №8Драйверы, назначение и параметры настройки. Драйверы и модель osi»

Презентация: Лекция №8Драйверы, назначение и параметры настройки. Драйверы и модель osi

Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.

Добавить свой комментарий

Аннотация к презентации

Презентация powerpoint на тему «Лекция №8Драйверы, назначение и параметры настройки. Драйверы и модель osi». Содержит 29 слайдов. Скачать файл 2.07 Мб. Самая большая база качественных презентаций.

Смотрите онлайн с анимацией или скачивайте на компьютер. Средняя оценка: 5.0 балла из 5.

Источник: pptcloud.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru