Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Точки входа драйвера устройстваСодержание книги
Поиск на нашем сайте
Объект драйвера (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; просмотров: 290; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.006 с.) |