Организация ввода-вывода. Драйверы WDM. Рощин А.В. - 42 стр.

UptoLike

Составители: 

42
владельцем IRP, и пакет не находится в очереди, использующей этот элемент, все
четыре указателя в массиве могут быть использованы произвольно.
Поле Taile.Overlay.ListEntry (LIST_ENTRY) может использоваться для
организации частных очередей.
3.2 Стек ввода-вывода
При создании IRP диспетчер ввода-вывода создает также массив структур
IO_STACK_LOCATION. В стеке содержится столько таких структур, сколько
драйверов будет обрабатывать данный IRP (рисунок 3.3).
Рисунок 3.3 – Соответствие между драйверами и стеком ввода-вывода
Структура каждого элемента стека показана на рисунке 3.4.
Рисунок 3.4 – Структура элемента стека ввода-вывода
Поле MajorFunction (UCHAR) содержит основной код (значение) функции,
связанной с IRP. Этот код, например, IRP_MJ_READ соответствует одному из
элементов таблицы функций MajorFunction объекта драйвера.
владельцем IRP, и пакет не находится в очереди, использующей этот элемент, все
четыре указателя в массиве могут быть использованы произвольно.
     Поле Taile.Overlay.ListEntry (LIST_ENTRY) может использоваться для
организации частных очередей.


     3.2 Стек ввода-вывода
     При создании IRP диспетчер ввода-вывода создает также массив структур
IO_STACK_LOCATION. В стеке содержится столько таких структур, сколько
драйверов будет обрабатывать данный IRP (рисунок 3.3).




     Рисунок 3.3 – Соответствие между драйверами и стеком ввода-вывода
     Структура каждого элемента стека показана на рисунке 3.4.




             Рисунок 3.4 – Структура элемента стека ввода-вывода
     Поле MajorFunction (UCHAR) содержит основной код (значение) функции,
связанной с IRP. Этот код, например, IRP_MJ_READ соответствует одному из
элементов таблицы функций MajorFunction объекта драйвера.
                                   42