Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Направления программирования
>
Drivers
(Модераторы:
Ochkarik
,
aks68
) > Тема:
Помогите с IoCancelIrp
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Помогите с IoCancelIrp (Прочитано 8046 раз)
0 Пользователей и 1 Гость смотрят эту тему.
zaynyatyi
Гость
Помогите с IoCancelIrp
«
:
24-11-2008 16:12 »
Доброго времени суток!
Подскажите кто писал драйвер фильтр файловой системы, каким образом отбрасывать IRP запросы например IRP_MJ_WRITE.
IoCancelIrp возвращает false.
За основу взял фильтр из книги oney, если честно то просто при срабатывании type == IRP_MJ_WRITE
то пробуем отменить запрос.
Заранее спасибо
Записан
Ochkarik
Модератор
Offline
Пол:
Re: Помогите с IoCancelIrp
«
Ответ #1 :
24-11-2008 18:34 »
см пример DDK,
DDK3790.1830\src\general\toaster\func\featured2\
или
DDK3790.1830\src\general\pcidrv\sys\
а если false - значит отменить данный IRP невозможно ) судя по надписи в DDK))
Записан
RTFM
уже хоть раз наконец!
:[ ну или хотя бы
STFW
...
zaynyatyi
Гость
Re: Помогите с IoCancelIrp
«
Ответ #2 :
24-11-2008 20:54 »
Про невозможность отмены при false я знаю), только не нашел в каком случае разрешается фильтру отменять запрос а в каких нет((
Где то промелькнуло что отмена запроса возможна только на DISPATCH_LEVEL.
Записан
Ochkarik
Модератор
Offline
Пол:
Re: Помогите с IoCancelIrp
«
Ответ #3 :
24-11-2008 20:59 »
ща тоже гляну...
вобще пока не понимаю при чем тут DISPATCH?
контекстный поиск в DDK. на слово "Cancel" и "Canceling IRPs". там все сказано...
случай я так понимаю может быть только один - все кто выше по стеку - корректно этот запрос обрабатывают...
«
Последнее редактирование: 24-11-2008 21:04 от Ochkarik
»
Записан
RTFM
уже хоть раз наконец!
:[ ну или хотя бы
STFW
...
zaynyatyi
Гость
Re: Помогите с IoCancelIrp
«
Ответ #4 :
25-11-2008 06:20 »
Drivers can only cancel IRPs that they have created...
А как быть в случае драйвера фильтра, не он же их создает.
Записан
zaynyatyi
Гость
Re: Помогите с IoCancelIrp
«
Ответ #5 :
25-11-2008 07:43 »
NTSTATUS DispatchWrite(PDEVICE_OBJECT fdo, PIRP Irp)
{
PDEVICE_EXTENSION pdx = (PDEVICE_EXTENSION) fdo->DeviceExtension;
Irp->IoStatus.Status = STATUS_CANCELLED;
Irp->IoStatus.Information = 0;
IoCompleteRequest(Irp, IO_NO_INCREMENT);
return STATUS_CANCELLED;
}
Разобрался. Всё таки Oney нужно было перечитать внимательней))
Спасибо за ответы
Записан
Ochkarik
Модератор
Offline
Пол:
Re: Помогите с IoCancelIrp
«
Ответ #6 :
25-11-2008 09:44 »
при чем тут Cancel?
а! ну да) бит отмены)
Записан
RTFM
уже хоть раз наконец!
:[ ну или хотя бы
STFW
...
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Направления программирования
>
Drivers
(Модераторы:
Ochkarik
,
aks68
) > Тема:
Помогите с IoCancelIrp
Загружается...