Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые обзорные » Драйвера ядра Windows

Реферат Драйвера ядра Windows





оботи драйвера створюються і застосовуються такі об'єкти:

об'єкт драйвера;

об'єкти пристроїв;

символьні посилання на пристрої, які доступні з режиму користувача.

Етапи роботи драйвера.

) Створення об'єкта драйвера. Створюється при завантаженні драйвера на етапі його запуску. У цей момент запускається функція DriverEntry і заповнюється масив MajorFunction, а також покажчик на об'єкт пристрою і назад. p align="justify"> До складу об'єкта пристрою входять:

посилання на об'єкт драйвера, який обробляє запити до пристрою;

тип пристрою.

) Створення символьного посилання на пристрій. Для того щоб об'єкт "пристрій" став доступний кодом режиму користувача, драйвер повинен створити в доступному йому (коду режиму користувача) каталозі "??" Ще один об'єкт - символьне посилання (symbolic link). Драйвер shablon.sys створює символьне посилання "slshablon" на свій пристрій "devshablon" в каталозі "??", Значенням якої є рядок " Device devshablon". p align="justify"> Таким чином, вже при завантаженні драйвера (у нашому випадку, на етапі завантаження ОС) ми маємо три об'єкти в пам'яті: драйвер " Driver shablon", пристрій " Device shablon" і символьне посилання на пристрій "?? slshablon".

) Відкриття. Далі під час запуску програми викликається CreateFile. Там є посилання на пристрій. Зі структури об'єкта пристрою DEVICE_OBJECT витягуються відомості про обслуговуючий його драйвері. Диспетчер введення-виведення формує пакет запиту вводу-виводу IRP типу IRP_MJ_CREATE і направляє його драйверу. Так драйвер дізнається про те, що код режиму користувача намагається отримати доступ до його пристрою. Якщо драйвер не має нічого проти, то він повертає код успіху. У нашого драйвера є спеціальна процедура диспетчеризації, яка реагує на це IRP - DispatchCreateClose (там поєднана процедура для відкриття і закриття пристрою). У ній в полі Io.Status.Status передається STATUS_SUCCESS, а в Io.Status.Information - 0, тому в цьому випадку нічого не потрібно передавати. Така відповідь від драйвера є сигналом диспетчеру об'єктів про створення віртуального файлу. При цьому в таблиці описателей (handle table) процесу створюється новий елемент з покажчиком на об'єкт "файл", і коду режиму користувача повертається новий дескриптор. p align="justify"> Якщо все ОК, то ми зберігаємо дескриптор файлу, повернений CreateFile, у змінній hDevice.

) Операції в/вив. Тепер ми маємо можливість здійснювати операції керування цим пристроєм за допомогою виклику функцій DeviceIoControl. Оскільки драйвер пристрою може в принципі виконувати багато різних завдань, необхідно якось диференціювати запити. Для цього й призначений другий параметр dwIoControlCode, званий керуючим кодом ввод...


Назад | сторінка 6 з 15 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Розробка драйвера, що розпізнає USB-пристрій як віртуальний COM-порт в сист ...
  • Реферат на тему: Розробка програми-драйвера клавіатури
  • Реферат на тему: Пристрій виведення інформації &Принтер&. Адміністрування і розмежування пр ...
  • Реферат на тему: Посилання і каторга. Умови утримання і дозвілля ссильнокаторжних
  • Реферат на тему: Створення найпростішого пристрою, що реагує на зміну показань фотодатчика