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

UptoLike

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

78
IoReleaseRemoveLock (комментарии А) необходимы тогда, когда устройство
назначения IRP является устройством нижнего уровня в стеке. 42 – просто
произвольный маркер.
Здесь также необходимо помнить о зачистке, так как диспетчер ввода-
вывода не выполняет автоматическую зачистку для асинхронных IRP.
3.20 Вопросы для самопроверки
1. Что такое пакет запроса ввода-вывода IRP?
2. Какова структура пакета запроса ввода-вывода IRP?
3. Для чего нужно поле MdlAddress в пакете запроса ввода-вывода IRP?
4. Для чего нужно поле Flags в пакете запроса ввода-вывода IRP?
5. Для чего нужно поле AssociatedIrp в пакете запроса ввода-вывода IRP?
6. Для чего
нужно поле IoStatus в пакете запроса ввода-вывода IRP?
7. Для чего нужно поле RequestorMode в пакете запроса ввода-вывода IRP?
8. Для чего нужно поле Cancel в пакете запроса ввода-вывода IRP?
9. Для чего нужно поле PendingReturned в пакете запроса ввода-вывода IRP?
10. Для чего нужно поле CanselIrql в пакете запроса ввода-вывода IRP?
11. Для чего нужно
поле CancelRoutine в пакете запроса ввода-вывода IRP?
12. Для чего нужно поле UserBuffer в пакете запроса ввода-вывода IRP?
13. Для чего нужно поле Tail в пакете запроса ввода-вывода IRP?
14. В каком случае создается MDL?
15. Что описывает MDL?
16. Что такое стек ввода-вывода?
17. Что собой представляет структура IO_STACK_LOCATION?
18. Для чего нужно поле MajorFunction
в структуре IO_STACK_LOCATION?
19. Для чего нужно поле MinorFunction в структуре IO_STACK_LOCATION?
20. Для чего нужно поле Flags в структуре IO_STACK_LOCATION?
21. Для чего нужно поле Control в структуре IO_STACK_LOCATION?
22. Для чего нужно поле Parameters в структуре IO_STACK_LOCATION?
23. Для чего нужно поле DeviceObject в структуре IO_STACK_LOCATION?
24. Для чего нужно поле FileObject в структуре IO_STACK_LOCATION?
25. Для чего нужно поле CompletionRoutine в структуре
IO_STACK_LOCATION?
26. Для чего нужно поле Context в структуре IO_STACK_LOCATION?
27. Какова типичная модель обработки пакета запроса ввода-вывода IRP?
28. С чего начинается жизненный цикл IRP?
29. Чем завершается жизненный цикл IRP?
IoReleaseRemoveLock (комментарии А) необходимы тогда, когда устройство
назначения IRP является устройством нижнего уровня в стеке. 42 – просто
произвольный маркер.
     Здесь также необходимо помнить о зачистке, так как диспетчер ввода-
вывода не выполняет автоматическую зачистку для асинхронных IRP.


     3.20 Вопросы для самопроверки
1. Что такое пакет запроса ввода-вывода IRP?
2. Какова структура пакета запроса ввода-вывода IRP?
3. Для чего нужно поле MdlAddress в пакете запроса ввода-вывода IRP?
4. Для чего нужно поле Flags в пакете запроса ввода-вывода IRP?
5. Для чего нужно поле AssociatedIrp в пакете запроса ввода-вывода IRP?
6. Для чего нужно поле IoStatus в пакете запроса ввода-вывода IRP?
7. Для чего нужно поле RequestorMode в пакете запроса ввода-вывода IRP?
8. Для чего нужно поле Cancel в пакете запроса ввода-вывода IRP?
9. Для чего нужно поле PendingReturned в пакете запроса ввода-вывода IRP?
10. Для чего нужно поле CanselIrql в пакете запроса ввода-вывода IRP?
11. Для чего нужно поле CancelRoutine в пакете запроса ввода-вывода IRP?
12. Для чего нужно поле UserBuffer в пакете запроса ввода-вывода IRP?
13. Для чего нужно поле Tail в пакете запроса ввода-вывода IRP?
14. В каком случае создается MDL?
15. Что описывает MDL?
16. Что такое стек ввода-вывода?
17. Что собой представляет структура IO_STACK_LOCATION?
18. Для чего нужно поле MajorFunction в структуре IO_STACK_LOCATION?
19. Для чего нужно поле MinorFunction в структуре IO_STACK_LOCATION?
20. Для чего нужно поле Flags в структуре IO_STACK_LOCATION?
21. Для чего нужно поле Control в структуре IO_STACK_LOCATION?
22. Для чего нужно поле Parameters в структуре IO_STACK_LOCATION?
23. Для чего нужно поле DeviceObject в структуре IO_STACK_LOCATION?
24. Для чего нужно поле FileObject в структуре IO_STACK_LOCATION?
25. Для чего нужно поле CompletionRoutine в структуре IO_STACK_LOCATION?
26. Для чего нужно поле Context в структуре IO_STACK_LOCATION?
27. Какова типичная модель обработки пакета запроса ввода-вывода IRP?
28. С чего начинается жизненный цикл IRP?
29. Чем завершается жизненный цикл IRP?

                                     78