ВУЗ:
Составители:
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
- …
- следующая ›
- последняя »
