Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Точки входа драйвера устройства ⇐ ПредыдущаяСтр 3 из 3
Объект драйвера (DRIVER_OBJECT) § Представляет отображение драйвера в памяти § Только один экземпляр драйвера может быть загружен в системную память § Драйверы должны быть в состоянии поддерживать многократные экземпляры аппаратных средств § Выделенный, когда драйвер загружен в память и освобожден, когда драйвер разгружен из памяти § Содержит следующее: § Список устройств создан драйвером § Указатели на точки входа драйверов § Указатель на имя службы, соответствующей этому драйверу · Это имя может отличаться от двоичного имени файла драйвера § Начальный адрес и размер двухуровневого изображения драйвера в памяти § Указатель на объект драйвера передают к DriverEntry () и AddDevice () подпрограммы
Объект устройства (DEVICE_OBJECT) § Представляет физические аппаратные средства или логическое устройство § Состоит из 2 частей: § Заголовка фиксированной длины: DEVICE_OBJECT (определенная система) § Расширения переменной длины: Device extension (определенный драйвер) § Часть цепочки DOs создана драйвером § Может иметь/не иметь имя § Имя может быть обеспечено создателем § Имя может быть автоматически сгенерировано ОС · FILE_AUTOGENERATED_DEVICE_NAME § Поле AttachedDevice указывает на объект устройства, который является многоуровневым § Создается драйверами устройств вызовом IoCreateDevice () § Удаляется драйверами устройств вызовом IoDeleteDevice ()
Объект файла (FILE_OBJECT) § Представляет открытый экземпляр объекта устройства § FO ссылается на DO, много FOs могут ссылаться на один DO § DO не ссылается ни на один FO § Создание FO: CreateFile ()/ZwCreateFile () § Удаление FO: CloseHandle ()/ZwClose () § FO-> FsContext и FO-> FsContext2 обычно хранить особую информацию объекта файла, требуемую драйверами § поле FO-> FileName указывает на часть имени файла, интерпретируемую драйвером устройства или драйвером файловой системы (FSD) § FILE_OBJECTs для FSDs указывают на блок параметров тома(VPB) § VPB представляет отношение между файловой системой и смонтированным томам § Поле FO-> Event используется, чтобы блокировать обращения потоков с синхронными запросами, которые обрабатываются асинхронно драйверами
Объектные Отношения
§ DRIVER_OBJECT – представляет изображение драйвера устройства § Содержит главу списка объектов устройства, создаваемых драйвером
§ DEVICE_OBJECT – представляет логическое или физическое устройство § Содержит указатель на объект драйвера, который создал его § Часть списка объектов устройства в драйвере § FILE_OBJECT – представляет открытый экземпляр устройства § Содержит указатель на объект устройства, открытый экземпляр которого он представляет
Пакет запросов на ввод-вывод (IRP) § Описывает запрос ввода-вывода § Состоит из 2 частей: § Заголовка фиксированной длины (IRP) § Переменного числа ввода-вывода позиций стека (IO_STACK_LOCATION) § Выделен диспетчером ввода-вывода в результате запроса приложения пользовательского режима или запроса драйвера § Может быть выделен драйверами, которые будут диспетчеризированы другим драйверам DeviceExtension § Выделен от нестраничных ассоциированных списков § IoCompleteRequest () освобождает IRP после завершения использования драйвером § IoCallDriver () передает IRP драйверам § Драйвер получает IRP, чтобы диспетчеризировать точки входа Расположение Стека ввода-вывода (IO_STACK_LOCATION) § Содержит параметры ввода-вывода для определенного драйвера в стеке многоуровневых драйверов § Один IOSL для каждого драйвера в стеке § Инициализируется предыдущим драйвером в стеке § Сначала IOSL инициализирован Диспетчером ввода-вывода § Содержит: § Указатель на объект конечного файла и объект устройство для запроса § Информацию, определенную для главной функции кода § Указатель на драйвер, зарегистрировавший процедуру завершения и контекст
|
|||||
Последнее изменение этой страницы: 2016-08-26; просмотров: 191; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.219.22.169 (0.005 с.) |