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

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





я в лабораторній роботі. Ім'я - IOCTL_GET. br/>
В 

У разі віртуального пристрою файловий прапор дорівнює 0.

Тип пристрою - FILE_DEVICE_UNKNOWN = 22h

Права доступу - FILE_READ_ACCESS + FILE_WRITE_ACCESS = 1 +2 = 3 = 11b

Функціональний код - в діапазоні від 800h до FFFh. У нас - 800h. p align="justify"> Метод буферизації - спосіб передачі даних між додатком і драйвером (можливі три):

Для невеликого обсягу даних використовується зазвичай METHOD_BUFFERED (00b) - виділяється додатковий буфер у нестранічной пам'яті, достатній для розміщення вхідного і вихідного буфера. Адреса цього буфера розміщується в IRP в полі AssociatedIrp.SystemBuffer. Диспетчер в/вив сам бере на себе роботу перезапису даних між користувальницьким і додатковим буфером. p align="justify"> Прямий доступ до даних (без буфера) - METHOD_OUT_DIRECT (2) - для виведення або METOD_IN_DIRECT (1) - для введення; поле з IRP - MdlAddress. Це безпосереднє звернення - диспетчер в/вив фіксує в пам'яті фізичні сторінки, що містять буфер користувача режиму. При цьому створює допоміжну структуру MDL (Memory Descriptor List) для опису зафіксованих сторінок. І розробник драйвера працює з MDL. p align="justify"> Доступ через буфер користувача рівня - METHOD_NEITHER (3); поле з IRP - SystemBuffer. Диспетчер в/вив передає в драйвер віртуальні адреси користувацького режиму. І в драйвері потрібно дуже обережно з ними працювати, тому що драйвер в цьому випадку повинен працювати тільки в контексті викликає потоку. p align="justify"> Коли додаток посилає драйверу код дії, то починає роботу диспетчер вводу-виводу. Він відповідає за формування пакета запиту вводу-виводу (I/O request packet, IRP) і посилку його драйверу для подальшої обробки. p align="justify"> Ми будемо розглядати 3 типи запитів:

IRP_MJ_CREATE - буде переданий при CreateFile,

- IRP_MJ_DEVICE_CONTROL - буде переданий при DeviceIoControl

- IPR_MJ_CLOSE - при CloseHandle

Пакет IRP складається із заголовка і стеків розміщення в/вив. Диспетчер в/вив створює кількість осередків стека в/вив рівне числу драйверних шарів, що беруть участь в обробці запиту. Кожному драйверу дозволений доступ до власної комірці стека. Коли драйвер передає пакет IRP драйверу нижнього рівня, покажчик на клітинку стека переміщається на клітинку, необхідну цього драйвера. І, навпаки, після обробки запиту, покажчик піднімається вгору на клітинку драйвера вищого рівня. Отримання покажчика за допомогою функції - IoGetCurrentStackLocation (). br/>В 

У кожному стеці розміщення знаходиться покажчик на об'єкт-пристрій DeviceObject і на об'єкт-файл FileObject, для якої ініційований запит. Пакети IRP завжди зберігаються у невивантажуваного пам'яті. br/>
В 

Для р...


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





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

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