ВУЗ:
Составители:
44
проходит весь показанный путь. Некоторые его фазы могут изменяться или
исключаться.
Рисунок 3.5 – Типичная модель обработки IRP
Жизненный цикл IRP начинается с его созданием диспетчером ввода-
вывода. Для создания IRP используются четыре функции:
Функция IoBuildAsynchronousFsdRequest (Fsd – File System Driver)
создает IRP, завершения которого вы не собираетесь дожидаться.
Функция IoBuildSynchronousFsdRequest создает IRP, завершения
которого вы намерены дождаться.
Функция IoBuildDeviceControlRequest создает синхронный запрос
IRP_MJ_DEVICE_CONTROL или IRP_MJ_INTERNAL_DEVICE_CONTROL.
Функция IoAllocateIrp создает
асинхронный IRP любого типа.
3.4 Создание синхронных IRP
Синхронный IRP принадлежит потоку, в контексте которого он был создан.
Это определяет следующие его особенности:
− При завершении потока диспетчер ввода-вывода автоматически отменяет
все незавершенные синхронные IRP, принадлежащие этому потоку.
− Если синхронный IRP был создан в произвольном потоке, то он
будет
отменен в случае завершения этого потока.
проходит весь показанный путь. Некоторые его фазы могут изменяться или исключаться. Рисунок 3.5 – Типичная модель обработки IRP Жизненный цикл IRP начинается с его созданием диспетчером ввода- вывода. Для создания IRP используются четыре функции: Функция IoBuildAsynchronousFsdRequest (Fsd – File System Driver) создает IRP, завершения которого вы не собираетесь дожидаться. Функция IoBuildSynchronousFsdRequest создает IRP, завершения которого вы намерены дождаться. Функция IoBuildDeviceControlRequest создает синхронный запрос IRP_MJ_DEVICE_CONTROL или IRP_MJ_INTERNAL_DEVICE_CONTROL. Функция IoAllocateIrp создает асинхронный IRP любого типа. 3.4 Создание синхронных IRP Синхронный IRP принадлежит потоку, в контексте которого он был создан. Это определяет следующие его особенности: − При завершении потока диспетчер ввода-вывода автоматически отменяет все незавершенные синхронные IRP, принадлежащие этому потоку. − Если синхронный IRP был создан в произвольном потоке, то он будет отменен в случае завершения этого потока. 44
Страницы
- « первая
- ‹ предыдущая
- …
- 42
- 43
- 44
- 45
- 46
- …
- следующая ›
- последняя »