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

UptoLike

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

69
Рисунок 3.10 – Завершение в диспетчерской функции
Сценарий 4: постановка в очередь для последующей обработки
В этом сценарии извне получен IRP, который ваш драйвер не может
обработать немедленно. IRP помещается в очередь для последующей обработки в
функции StartIo (рисунок 3.11). Условия для применения этого сценария:
IRP получен извне (а не создан вами),
вы не знаете заранее, возможна ли немедленная обработка IRP, как это
часто бывает для с IRP, требующими последовательного доступа к
оборудованию.
Типичный способ реализации этого сценария основан на управлении
очередью IRP при помощи объекта DEV1QUEUE. Приводимые ниже фрагменты
кода демонстрируют взаимодействие различных частей драйвера устройства с
программируемыми прерываниями ввода-вывода.
Рисунок 3.11 – Постановка в очередь для последующей обработки
             Рисунок 3.10 – Завершение в диспетчерской функции
     Сценарий 4: постановка в очередь для последующей обработки
     В этом сценарии извне получен IRP, который ваш драйвер не может
обработать немедленно. IRP помещается в очередь для последующей обработки в
функции StartIo (рисунок 3.11). Условия для применения этого сценария:
     − IRP получен извне (а не создан вами),
     − вы не знаете заранее, возможна ли немедленная обработка IRP, как это
        часто бывает для с IRP, требующими последовательного доступа к
        оборудованию.
     Типичный способ реализации этого сценария основан на управлении
очередью IRP при помощи объекта DEV1QUEUE. Приводимые ниже фрагменты
кода демонстрируют взаимодействие различных частей драйвера устройства с
программируемыми прерываниями ввода-вывода.




       Рисунок 3.11 – Постановка в очередь для последующей обработки



                                      69