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

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





vices ), а потім знову перезавантажитися. br/>

1.2 Драйвери віртуальних пристроїв Windows


До цих пір ми розробляли драйвер режиму ядра, який може робити те, що не можна на рівні користувача, зокрема, працювати з портами в/вив. Такий драйвер називається драйвером ядра, але не драйвером пристрою, тому що не передаються дані між програмою користувача і пристроєм (Драйвер адже зазвичай навіщо потрібен? Щоб організовувати обмін даними між додатком користувача та пристроєм). p align="justify"> Зараз ми будемо розробляти драйвери пристроїв, які передають дані туди і назад між додатком користувача та пристроєм.



В 

Коли додатку потрібно операція в/вив, то відбувається звернення до драйвера. Для цього додаток може давати запит на читання даних з пристрою або запис даних на пристрій. А якщо потрібно якесь інше дію, наприклад, опитування або управління пристроєм, або що-небудь інше, то для цього використовується т.зв. IOCTL-інтерфейс (Device In-Out Control). p align="justify"> Ми будемо розглядати саме такий випадок для віртуальних пристроїв, тому що найчастіше, навіщо потрібно віртуальний пристрій у драйвері? Щоб можна було передавати йому дані, які драйвер може якось обробити (як не можна у додатку) і повернути в додаток результат. Згадаймо, що звичайний драйвер ядра, розглянутий раніше, нічого не брав з програми і нічого туди не повертав, а просто робив дії, недоступні додатком. p align="justify"> Коли додатку потрібно операція в/вив, то відбувається звернення до драйвера. Для цього може використовуватися т.зв. IOCTL-інтерфейс (Device In-Out Control). p align="justify"> Зухвала додаток виконує наступні дії:

) Відкриття файлу та отримання його дескриптора: CreateFile, посилання на пристрій,

GENERIC_READ + GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL

В результаті, якщо все сталося успішно, ми отримуємо дескриптор пристрою.

) Посилка драйверу коду дії (що робити, драйвер може реалізовувати багато різних дій): DeviceIoControl, дескриптор, код дії, адресу вхідного буфера, розмір вхідних даних, адреса вихідного буфера, розмір вихідних даних, адреса буфера для реальної кількості байтів

) Закриття файлу і, відповідно, звільнення дескріптора.CloseHandle дескриптор пристрою

Щоб передавати дані, модулі (додаток і драйвер) повинні домовитися про протокол взаємодії (коди дій, структура буферів - вхідних і вихідних).


В 

Такий же код дії використовується і в додатку, і в драйвері.

Код дії в додатку і в драйвері можна записувати в 16-ричном вигляді, а можна використовувати макрос CTL_CODE, як це зроблено в прикладі лаб. роботи у файлі common.inc.

Розглянемо приклад коду дії з драйвера віртуального пристрою, який використовуєтьс...


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





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

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